vue移动端的开关按钮
HainesFreeman 人气:0逻辑:
1.写一个椭圆形的div
2.动态改变这个椭圆形的div的背景颜色
3.写一个圆点,这个圆点采用绝对定位的方式,定位在椭圆形的div上
4.开关来回切换的时候,要使用translateX移动圆点的位置,并且动态改变椭圆形 div的背景颜色
代码:
html:
<!--部门功能--> <div class="department"> <div class="department-l">部门功能</div> <div class="department-r"> {{isShow?'开启':'关闭'}} <span class="switch" :class="{on:isShow}" @click.stop="switchDepartment"> <div class="switch-circle" :class={right:isShow}></div> </span> </div> </div>
css:
.department { height: px2rem(178); background: #ffffff; padding: 0 px2rem(66) 0; margin-top: px2rem(4); display: flex; justify-content: space-between; .department-l { line-height: px2rem(178); font-size: px2rem(53); ccolor: #303030; } .department-r { line-height: px2rem(178); font-size: px2rem(50); color: #454545; } } .switch{ display: inline-block; width: px2rem(140); height: px2rem(86); background: #DBDBDB; border-radius: px2rem(331); position: relative; vertical-align: middle; margin-left: px2rem(31); .switch-circle{ position: absolute; left: px2rem(6); top: px2rem(6); width: px2rem(73); height: px2rem(73); border-radius: 50%; background: #fff; } } .on{ background: -webkit-linear-gradient(left, #19A89F, #9CDD97); /* Safari 5.1 - 6.0 */ background: -o-linear-gradient(right, #19A89F, #9CDD97 ); /* Opera 11.1 - 12.0 */ background: -moz-linear-gradient(right, #19A89F , #9CDD97); /* Firefox 3.6 - 15 */ background: linear-gradient(to right, #19A89F, #9CDD97); /* 标准的语法(必须放在最后) */ } .right{ transform :translateX(px2rem(55)) }
js:
<script> export default { name: "clientCreate", data() { return { isShow:false } }, created: function () { }, mounted: function () { }, methods: { switchDepartment:function(){ this.isShow=!this.isShow; }, } } </script>
加载全部内容