vue中如何设置鼠标经过切换样式

vue中如何设置鼠标经过切换样式

第一步

在需要设置样式的标签上加上mouseover和mouseout属性,代码如下

<p class="content-p" @mouseover="addActive($event)" @mouseout="removeActive($event)">

@可以替换为v-on:,不影响使用
这里p标签的样式是“content-p”
$event是指当前触发的是什么事件(鼠标事件,键盘事件等)

第二步

在vue的methods里添加addActive和removeActive方法,分别是

		addActive($event) {
			$event.currentTarget.className = 'content-p active'
		},
		removeActive($event) {
			$event.currentTarget.className = 'content-p'
		},

其中currentTarget指的是当前目标,$event.currentTarget可以选中当前的目标,并将className属性修改为想要的新属性,这里加入了一个active样式对content-p的属性值做了覆盖,同时在鼠标移走后触发removeActive事件,可以去除之前加入的样式

容易忽视的一个细节:

className后的类可以打乱顺序,但是在css中一定要按顺序写,如active和content-p的顺序不能颠倒。即权重一样的情况下后面声明的会覆盖前面声明的。
举个例子

<div class = "red blue">123</div>
<div class = "blue red">456</div> 

<style>
	.red{
	color : red
	}
	.blue{
	color:blue
	}
</style>

这种情况,因为blue类比red后声明,所以123和456显示时都是蓝色,跟class后的顺序无关。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于您的问题,您可以使用 Vue 的事件绑定和动态绑定 class 的方式来实现。 在模板,您可以通过 `@mouseenter` 和 `@mouseleave` 监听鼠标移入和移出事件,同时使用 `:class` 动态绑定 class,根据当前状态切换不同的图片。 假设您有两张图片,分别为 `image1.png` 和 `image2.png`,您可以这样写: ```html <template> <div class="image" @mouseenter="isHover = true" @mouseleave="isHover = false" :class="{ 'image-hover': isHover }" > </div> </template> <style> .image { background-image: url('image1.png'); background-size: cover; width: 200px; height: 200px; } .image-hover { background-image: url('image2.png'); } </style> <script> export default { data() { return { isHover: false } } } </script> ``` 在模板,我们定义了一个 `div`,并设置了默认的背景图片为 `image1.png`。同时,我们监听了 `@mouseenter` 和 `@mouseleave` 事件,并使用 `isHover` 变量来保存当前鼠标是否移入。在 `:class` ,我们使用了对象语法,将 `image-hover` class 绑定到 `isHover` 变量的值上。在样式,我们设置了 `image-hover` class 的背景图片为 `image2.png`。 这样,当鼠标移入时,`isHover` 变量的值为 `true`,`div` 的 class 将会变成 `image image-hover`,从而切换为 `image2.png`;当鼠标移出时,`isHover` 变量的值为 `false`,`div` 的 class 将恢复为 `image`,从而切换回 `image1.png`。 希望这可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值