vue 2.0 怎样判断class的有无来实现另一个元素的样式
发布网友
发布时间:2022-04-24 16:31
我来回答
共2个回答
懂视网
时间:2022-05-15 02:31
这次给大家带来vue2.0操作active其他选项互斥,vue2.0操作active其他选项互斥的注意事项有哪些,下面就是实战案例,一起来看一下。z
在正常的js中。我们如果要实现点击选中active然后其他取消的效果,我们可以定义一个类,当点击的时候给给多有的dom取消active的类,给当前元素加上这个类名,说的很啰嗦,直接来看代码说话吧(表示楼主用的是jq):
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
width: 100px;
margin-top: 10px;
border: 1px solid red;
}
li:active {
cursor: pointer;
}
.active {
background-color: aqua;
}
</style>
<script src="http://g.ydbcdn.com/jquery/latest/jquery.min.js"></script>
</head>
<body>
<ul>
<li>this is pne</li>
<li>this is two</li>
<li>this is three</li>
</ul>
</body>
<script>
$(() => {
$("li").click((e) => {
$("li").removeClass("active");
$(e.target).addClass("active");
})
})
</script>
效果如下图所示:
但是在vue里面,是不提倡进行dom操作的,如果非进行dom的话,vue2.0里面有一个ref的属性,是可以达到dom的效果的。那么接下来我们不接住dom来进行操作:
由于习惯了webpack和vue-cli脚手架,所以楼主所有vue的代码都是放在webpack的脚手架当中进行,还使用了pug和scss的预处理器,vue的代码如下:
<template lang="pug">
ul
li(v-for="(item,index) in classArr", @click="result(index)", :class="resultNum === index?'active':''") this is {{item}}
</template>
<style lang="scss">
li {
list-style: none;
width: 100px;
margin-top: 10px;
border: 1px solid red;
&:hover {
cursor: pointer;
}
}
.active{
background-color: aqua;
}
</style>
<script>
export default{
data(){
return {
classArr: ["one", "two", "three"],
num:"",
}
},
methods: {
result(index){
this.num = index;
}
},
computed:{
resultNum(){
return this.num;
}
}
}
</script>
思路如下:
这段代码使用的是index这个关键字,还使用了computed这个计算属性,当当前的index索引与点击的当前元素的下标相同的时候,便会触发active这个类名。说的很简练,不懂的可以加博主一起探讨
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
Vue-cropper对图片进行裁剪
使用Element-UI Table实现拖拽功能
热心网友
时间:2022-05-14 23:39
先在data里面定义
`data () {
return {
collapse:false
}
}
`
点击展开菜单添加is-active,同时将collapse变成true,然后在你想增加类名的dom上加上:class="{'classA':collapse}",类名classA在css里面添加样式
vue 2.0 怎样判断class的有无来实现另一个元素的样式
先在data里面定义 `data () { return { collapse:false } } `点击展开菜单添加is-active,同时将collapse变成true,然后在你想增加类名的dom上加上:class="{'classA':collapse}",类名classA在css里面添加样式
vue如何动态改变样式(vue动态修改css)
Vue能不能实现数据驱动style样式呢?官方提供的办法是在template里使用:style或者:class的方式赋值。但它们有个缺陷,即无法设置伪元素的css属性,例如,如果想设置就没法用上述方法实现。vue.js怎么动态设置cssVue.js提供了一个内置的指令v-bind:style,可以用来动态地绑定CSS样式。它允许你使用JavaScript...
Vue2.0怎么实现组件数据的双向绑定
实现组件双向数据绑定在上一节中最后的示例使用的是Vue 1.0版本中的 .sync 实现数据双向绑定。那我们先来看看抛弃 .sync 修饰符来实现组件双向数据绑定的工作: 通过Vue提供的机制,绕开直接修改 prop 来实现组件双向数据绑定 。其思路大致是这样:在数据渲染时使用 prop 渲染数据将 prop 绑定到子组件...
Vue|样式绑定
首先在style中准备三个不同效果的class样式。在vue实例中定义一个数组并将class名进行指定。在html中的div标签中对arr进行绑定。运行项目可以看到数组方式的样式也绑定上去了。数组方式绑定class样式适用于样式的个数和名字不确定的场景。1.3 对象写法 对象写法绑定class样式适用于样式的个数和名字都确定的...
vue动态添加的标签怎么绑定事件?
2、vue对象里面data:{isActive:true,//判断是否显示active这个class}页面渲染为:当然我们也可以对象中传入更多属性来动态切换多个class,此外,v-bind:class指令也可以与普通的class属性共存。3、但是有时我们可能想把值绑定到Vue实例的一个动态属性上,这时可以用v-bind实现,并且这个属性的值可以不是...
vue中各组建class一样,跳转组建的时候上个组建的样式会遗留下来,怎么解 ...
一个vue文件可以写多个,如果在style加上socped代表本组件的样式,不污染全局。如果需要覆盖第三方组件样式,则不能加scoped,因此需要另写一个.xxx-component{...},这里用一个大类包裹防止污染全局。接着,用比较笨的方法,就是打开f12检查究竟要覆盖哪些样式,然后写在没有加scoped的style里即可。
Vue2ElementSchemaForm配置式生成表单的实现
比如Component组件并非只能接收一个字符串,渲染全局组件,同时可以接收一个Component组件,也就是说,当我们ElementUI组件没有全局注册的时候,我们可以通过import{ElInput}from'element',传递给Component组件,同样可以完成渲染一个el-input组件的功能。$attrs 第二个知识点,vue的属性透传,假如你有这么一个疑惑——我对el-...
怎样进行Vue拖拽组件开发
我们以向下拖拽来说:_ 首先,我们要在拖拽结束事件touchend中判断元素从拖动开始到拖动结束时拖动的距离。若小于某个设定的值,则什么也不做;_ 然后,在touchmove事件中判断,若(currTop - initTop) % elHeight>= elHeight/2成立,即当元素拖至另一个元素块等于或超过1/2的位置时,即可将元素插入到最新的位置为...
React-JSX中如何实现Class与Style的动态绑定(附实例)
摘要:操作元素的 class 列表和内联样式是数据绑定的一个常见需求,频繁操作dom元素会降低javascript性能,为了实现高性能js,动态绑定class和style是高素养程序员的必选。本文以React-JSX语法为基础,结合其它框架的实现方法,介绍如何实现ClassName 与 Style 的动态绑定。注:本文实例都已经过验证,错误的请...
VUE3中Class 与 Style 绑定
:style 的数组语法可以将多个样式对象应用到同一个元素上:在 :style 中使用需要一个 vendor prefix (浏览器引擎前缀) 的 CSS property 时,Vue 将自动侦测并添加相应的前缀。Vue 是通过运行时检测来确定哪些样式的 property 是被当前浏览器支持的。如果浏览器不支持某个 property,Vue 会进行...