Vue 制作一个优雅的Switch

效果图

点击switch,仔细观察它的过渡变化,它主要在元素中使用了backgroundmargin-left 等属性的transition动画,下面是它的实现代码:

<template>
  <div class="switch"
       @click="toggleValue"
       :class="{selected:value}">
    <div class="wrapper">
      <div class="bullet"></div>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      value: false
    }
  },
  methods: {
    toggleValue () {
      this.value = !this.value;
    }
  },
}
</script>

<style scoped>
.switch {
  margin: 50px;
  display: inline-block;
  user-select: none;
}
.switch:active .bullet {
  transform: scale(0.8);
}
.wrapper {
  width: 32px;
  height: 16px;
  border-radius: 8px;
  background: #e0f8ed;
  transition: background 0.3s;
  padding: 1px;
  box-sizing: border-box;
}
.bullet {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #2c3e50;
  transition: margin-left 0.2s ease-in-out, transform 0.2s ease-in-out;
}
.selected > .wrapper {
  background: #42b983;
}
.selected > .wrapper > .bullet {
  margin-left: 16px;
  background: #fff;
}
</style>

祝你学习愉快!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,357评论 0 11
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,667评论 0 6
  • CSS参考手册 一、初识CSS3 1.1 CSS是什么 CSS3在CSS2.1的基础上增加了很多强大的新功能。目前...
    没汁帅阅读 3,960评论 1 13
  • CSS要点记录 CSS 指层叠样式表 (Cascading Style Sheets) 多种样式时的优先级问题 数...
    Tony__Hu阅读 1,220评论 0 0
  • (这是15年初学css时记的笔记) 选择器 简单选择器 标签选择器 直接把标签名加前面。 类选择器 用.+ cla...
    burningalive阅读 1,071评论 0 0