CSS图文消息的鼠标hover悬停特效用Vue
时间: 2024-02-03 19:13:18 浏览: 38
可以使用Vue的`@mouseover`和`@mouseout`事件来实现CSS图文消息的鼠标hover悬停特效。
首先,在Vue的template中,使用v-for循环渲染出图文消息列表,并为每个消息绑定一个事件:
```html
<template>
<div>
<div v-for="message in messages" :key="message.id"
@mouseover="showMessage(message.id)"
@mouseout="hideMessage()">
<img :src="message.image" alt="message image">
<p>{{ message.text }}</p>
</div>
</div>
</template>
```
在Vue的script中,定义`showMessage`和`hideMessage`方法,分别用于显示和隐藏鼠标悬停的消息:
```javascript
<script>
export default {
data() {
return {
messages: [
{ id: 1, image: 'image1.jpg', text: 'Message 1' },
{ id: 2, image: 'image2.jpg', text: 'Message 2' },
{ id: 3, image: 'image3.jpg', text: 'Message 3' },
],
hoverMessageId: null
}
},
methods: {
showMessage(id) {
this.hoverMessageId = id
},
hideMessage() {
this.hoverMessageId = null
}
}
}
</script>
```
最后,在Vue的style中,使用CSS样式来实现鼠标悬停特效。可以使用`:hover`选择器来实现鼠标悬停时的效果,并根据`hoverMessageId`来判断当前鼠标悬停的消息:
```css
<style scoped>
div:hover:not([data-id='{{ hoverMessageId }}']) p {
opacity: 0.5;
}
div[data-id='{{ hoverMessageId }}'] p {
font-weight: bold;
}
</style>
```
这样,在鼠标悬停某个图文消息时,该消息的文本会加粗显示,其他消息的文本会变得半透明。当鼠标离开图文消息时,所有消息都会恢复原来的样式。