vue使用v-for实现hover点击效果
作者:会游泳de哈士奇 发布时间:2024-05-02 17:09:03
标签:vue,点击,hover
使用Vue来实现鼠标悬停效果。可以使用事件处理器v-on指令(简写为:@)来完成。为标签绑定mouseenter以及mouseleave事件即可。
hover是css中的选择器,用于选择鼠标指针浮动在上面的元素。所以a:hover可用于设置当鼠标悬停在超链接之上时超链接的样式。
在当今比较流行的前端框架里 vue react 都是以数据驱动的形式来修改元素的状态, 而并非是之前使用jq来操作dom元素, 这样效率也是非常低的, 像vue, react 都是以虚拟dom的形式渲染页面, 以数据的变化来更新虚拟dom, 从而更新页面.
jquery 来实现
1.给li来绑定hover事件
@mouseover="hover(index)"
2.在hover函数内去操作dom eq选中当前hover的li去修改它的样式, siblings()选中其他的li修改样式
hover: function(index){
console.log(index);
$('ul li').eq(index).css({
'background': '#ccc',
'color': '#fff'
}).siblings().css({
'background': '#fff',
'color': '#333'
})
}
vue 利用不同的class名来实现
首先写两个不同状态的样式
.hoverBg{
background: #ccc;
color: #fff;
}
.clickBg{
background: red;
color: #fff;
}
然后给两个状态绑定两个值
export default {
data: function(){
return {
itemArr:['A','B','C','D'],
hoverIndex: -1, //表示当前hover的是第几个li 初始为 -1 或 null 不能为0 0表示第一个li
clickIndex: -1, //表示当前点击的是第几个li 初始为 -1 或 null 不能为0 0表示第一个li
}
},
}
hover的时候让hoverIndex等于hover的li,点击时候一样
@mouseover="hoverIndex = index"
@click="clickIndex = index"
鼠标移出又取消移出状态 即让hover的li为 -1 或 null
@mouseout="hoverIndex = -1"
然后利用 hoverIndex 和 clickIndex 来给li不同的class名 实现效果
:class="{'clickBg':index==clickIndex,'hoverBg':index==hoverIndex}"
用的熟练了就可以做出更多的东西,不同li渲染不同的样式
全部代码如下:
<template>
<ul class="item">
<li v-for="(item, index) in itemArr" :key="index"
:class="{'clickBg':index==clickIndex,'hoverBg':index==hoverIndex}"
@click="clickIndex = index"
@mouseover="hoverIndex = index"
@mouseout="hoverIndex = -1">
{{item}}
</li>
</ul>
</template>
<script>
export default {
data: function(){
return {
itemArr:['A','B','C','D'],
hoverIndex: -1, //表示当前hover的是第几个li 初始为 -1 或 null 不能为0 0表示第一个li
clickIndex: -1, //表示当前点击的是第几个li 初始为 -1 或 null 不能为0 0表示第一个li
}
},
}
</script>
<style>
.item{
width: 600px;
height: 60px;
}
.item li{
width: 80px;
height: 60px;
line-height: 60px;
margin-left: 20px;
float: left;
text-align: center;
cursor: pointer;
}
.hoverBg{
background: #ccc;
color: #fff;
}
.clickBg{
background: red;
color: #fff;
}
</style>
总结
以上所述是小编给大家介绍的vue使用v-for实现hover点击效果网站的支持!
来源:https://blog.csdn.net/qq_41916815/article/details/82883070


猜你喜欢
- 对于跟我一样,自学javascript且没有其他语言学习经验的人来说,一开始的时候,javascript的调试也是一个比较大的难点,很多基础
- 主要需要pd.ExcelWriter([文件路径])方法参考官方文档:>>> writer = pd.ExcelWrite
- 一、Cookie原理HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制Cookie是http消息头中的一种属性,
- 很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_
- 通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。在MySQL 5.1服务器和客户端之间最大能发送的可能信息包为1
- 先上一段代码,如下所示:select distinct b.OrgID,b.CompanyID,b.AreaID,b.CustC
- 传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要
- 正文首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只
- 我就废话不多说,咱直接看代码吧!tf.transposetranspose( a, perm=None,
- 前言MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移
- python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示:利用time库来替代某个程序 的进行过程,做实例,思路是
- 压测时,图片太少,想着下载网页中的图片,然后过滤指定分辨率,但网页中指定分辨率的图片太少了(见下) 后使用格式工厂转换图片import ur
- 本文实例讲述了golang简单获取上传文件大小的方法。分享给大家供大家参考,具体如下:package mainimport ( &
- 额……首先呢说说这个标题吧,实在不知道叫什么好,因为这个demo呢其实一个艾文王今天中午给丢给我一个图。他说这个是一个面试题,给我看看。这样
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的
- 我们在使用Django过程中,数据库往往是离不开的,比较长常用的是MySQL数据库,但在使用过程中,对Python不同的版本对用的库也不一样
- 1 关于 Matplotlib 模块Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块
- plt.title() 是 matplotlib 库中用于设置图形标题的函数。一、基本语法如下plt.title(label, fontdi
- 线程池map()方法传递多参数list之前通过threading.thread()进行了助力接口的多线程并发,但是这个针对并发数量较少的时候
- 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+AL