<div class="filter-nav" v-for="(item,index) in navTabr" :key="index"
:class="{'active':selected.indexOf(item)!=-1}" @click="active(index,item)">
<div class="bg-box">
<span>{{item.name}}</span>
</div>
</div>
methods方法定义
active(index, item) {
if (this.selected.indexOf(item) !== -1) {
this.selected.splice(this.selected.indexOf(item), 1);
} else {
this.selected.push(item);
console.log(JSON.parse(JSON.stringify(this.selected)));
相信大家都会遇到这种情况:v-for循环时,我只需要点击到的元素做出相应反应,其他的元素不变;但是往往所有v-for循环出的元素都会变化。如下面的代码:我需要点击到的元素添加一个类样式,其他元素不变,但是这样会导致所有的元素都会变化
html:
{{item.name}}
.addclass{
color : red;
data:{
items :[
HTML:
条件表达式动态绑定样式::class="{'active': isChange==index}
<div class="test" :class="{'active': isChange==index}" v-for="(item,index) in upArr" :key="index" @tap="tapInfo(index,item.id)">
<div cl
1.被点击时的效果可以用div:active{ css }
2.鼠标覆盖在上面的时候可以用div:hover{ css;}
3.点击之后的效果,这个相对前2种有些麻烦,必须用到JS或者jquery,步骤如下:
a.先给div添加一个选中的样式比如on{css};
b.然后在js中$(‘div’).click(function{
$(‘div’).toggleClass(’ ',‘on’);
这是jquery自带的一个方法,点击div切换2个class,
<div class="function">
<span :class="{currentPage:currentTag==0}" class="zhuye" @click="homeClick" >主页</span>|
<span :class="{currentPage:currentTag==1}" class="fabiao" @click="blogPublish">发表文章</span>|
<title>div点击按钮改变样式</title>
<meta charset="utf-8" />
<script src="https://cdn.jsdelivr.net/npm/vue"></script
现在用vue和react的话,基本都会选用一种UI框架,比如element plus,或者ant design等。但如果有些自己还想额外加一些效果的话,就会发现困难重重,不像以前用jquery那么好控制。注意这个isActive,忽而isActive.value,忽而 isActive === index,让人摸不着头脑。用上VUE之后,前后端分离,组件式开发,代码复用、独立性和隔离性都挺好,可维护性得以提高。相比之下,以前用jQuery,代码实在太多了。//如果点击的div没有处于置亮状态,则置亮。
&amp;lt;template&amp;gt;
&amp;lt;div style=&quot;&quot;&amp;gt;
&amp;lt;div &amp;gt;
&amp;lt;open v-for=&quot;(item,index) in list&q