1、引jQuery,然后定义元素的style样式,根据自己的元素来定义,这里随性定义div的style样式。
2、接着我们看样式所带来的效果,接着开始设置点击按钮会产生变化颜色等交互效果。
3、首先,自然是指定好触发变化颜色的事件,可以是经过触发等,这里我就点击即可触发颜色变化。
4、用css()便可以覆盖原来元素的样式了哦。
5、如果是修改元素单个样式,要用逗号隔开,不可以使用冒号哦。
6、这样就可以得到交互效果了,但是这只是一个样式的效果发生了变化,
7、可以用大括号裹住多个样式,逗号分隔样式,然后样式值用冒号
8、最后样式交互就大功告成了,多个样式就会被修改了
方法一:使用原生js操作dom的方法,来改变css的样式,比如
document.getElementById(id).style.property =newstyle
这里的new style 里面就可以使用js传入的变量。
此方法固然可以,但是对应改变一些复杂的css,比如动画什么的,操作起来就不怎么方便了。此时,如下的方法二就显得尤为重要了!
方法二:
利用css变量来处理,思路是将js变量赋值给css变量,然后在css样式中使用css变量。如下图所示,我们传入year变量,然后生成了--top、--bottom等变量,然后这些变量就可以在css中使用!
template<ul>
<li v-for="tab in tabs" :class="{ 'is-active': tab.isSelected}">
<a :href="tab.href" @click="selectTab(tab)">{{tab.name}}</a>
</li>
</ul>
script
selectTab(selectedTab) {
this.tabs.forEach(tab =>{
tab.isSelected = (tab.name == selectedTab.name)
})
}
给每个a标签绑定一个方法,并传入当前对象作为参数
当点击时遍历所有a标签,比较当前遍历对象的某个属性(例子中的name)与传入对象的某个属性
比例结果赋值给一个flag(例子中的isSelected属性),由这个flag去控制:class
从而实现数据驱动样式