点击改变选项背景图(或其他)
来源:互联网 发布:网络语cp,os是什么意思 编辑:程序博客网 时间:2024/05/29 19:36
开发环境
- vue、jquery
需求
- 点击某个选项,其选项图标改变,且鼠标移出之后,保持背景图片改变的效果
简单分析
- 选项的图标分为两种状态:未选中、选中状态,有一些还需加上一个hover状态
- hover可以用css实现,但是如果选项过多,则代码过于冗长
实现方案
- 选中状态的选项动态加上特殊类名用于标识
- 同一选项的图片命名为aaa-1.png、aaa-2.png的状态
- 利用jquery甄别特殊类名的方法,给拥有特殊类名的选项动态改变背景图片
主要代码实现
1.结构代码
<ul> <li class="item-0" :class="{'item-active' : active == 0}" @click="changeActive(0)"></li> <li class="item-1" :class="{'item-active' : active == 1}" @click="changeActive(1)"></li> <li class="item-2" :class="{'item-active' : active == 2}" @click="changeActive(2)"></li></ul>
2.vue-js代码
export default { data () { return { active: 0 } }, methods: { // 改变active值 changeActive (index) { this.active = index; this.watchActive(); }, // 判断特殊类名:item-active,增加对应的样式 watchActive () { for (var i = 0; i < 4; i++) { var checkClass = 'item-' + i.toString(); var isActive = $('.' + checkClass).hasClass('item-active'); if (isActive == false) { // 未被选中的选项,背景图为 xxx-1.png $('.' + checkClass).css('background-image', 'url("./image/' + checkClass + '-1.png")'); } else { // 被选中的选项,背景图为 xxx-2.png $('.' + checkClass).css('background-image', 'url("./image/' + checkClass + '-2.png")'); } } }, }}
————————– 分割线 ————————————-
2017.08.19
开发环境
- 纯 jquery环境
源码查看地址
github: https://github.com/LucaLJX/jianshu_demo/tree/master/web%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/%E9%80%89%E9%A1%B9%E5%8D%A1%E7%82%B9%E5%87%BB%E6%9B%B4%E6%8D%A2%E8%83%8C%E6%99%AF%E5%9B%BE
主要代码实现
1.html代码
<div class="menu"> <ul> <li class="item-0 item item-active" onclick="clickItem(0)">选项卡一</li> <li class="item-1 item" onclick="clickItem(1)">选项卡二</li> <li class="item-2 item" onclick="clickItem(2)">选项卡三</li> </ul> </div>
2.js代码
$(document).ready(function () { watch();});function watch () { var length = $('.menu ul li').length; for (var i = 0; i < length; i++) { var checkClass = 'item-' + i.toString(); var hasActive = $('.' + checkClass).hasClass('item-active'); if (hasActive) { $('.' + checkClass).css('background-image', 'url("./icons/' + checkClass + '-red.png")'); } else { $('.' + checkClass).css('background-image', 'url("./icons/' + checkClass + '-blue.png")') } }}function clickItem (index) { var length = $('.menu ul li').length; for (var i = 0; i < length; i++) { var clickClass = 'item-' + i.toString(); if (index == i) { $('.' + clickClass).addClass('item-active'); } else { $('.' + clickClass).removeClass('item-active'); } } watch ();}
如果有新的好方法,会持续更新。。。
BY–LucaLJX
阅读全文
0 0
- 点击改变选项背景图(或其他)
- 点击元素或div切换该元素的背景图
- ListView点击或选中item改变背景
- ListView点击或选中item改变背景
- js改变按钮背景图
- JavaScript--点击按钮实现选中选项移动到指定位置(下拉框)或全部选项移动
- js中 select 选项点击改变 div中的值
- android gridview点击子选项动态改变item背景颜色
- 选项卡——点击导航位置,下面部分内容改变
- listView点击一个Item,改变的是其他Item
- jQuery点击li标签改变颜色,其他li标签不变
- JavaScript中点击按钮,改变其他标签中的内容
- 如何在GWT实现点击Button(或其他Widget)打开文件选择对话框
- ImageView点击时背景图修改(简单方法)
- ImageView点击时背景图修改(简单方法)
- android ImageView点击时背景图修改(简单方法)
- 通过select改变其他元素的属性或子节点
- 通过select改变其他元素的属性或子节点
- 谈谈你对闭包的理解
- LinkedList实现
- ICS bomblab总结
- Linux vi命令修改文件及保存总结
- javascript 函数表达式
- 点击改变选项背景图(或其他)
- SPI 的主模式和从模式
- [POJ 1125]Stockbroker Grapevine[dijkstra]
- Python(1)
- 菜鸟的第五篇日志
- Linux下vi命令修改文件及保存总结
- 浏览器兼容
- 2017国际区块链应用联合会八月论坛(北京)成功召
- 类加载顺序