最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue.js實(shí)現(xiàn)開關(guān)(switch)組件實(shí)例代碼

 更新時(shí)間:2022年06月22日 09:30:08   作者:小旭2021  
這篇文章介紹了vue.js實(shí)現(xiàn)開關(guān)(switch)組件的實(shí)例代碼,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

最近開發(fā)組件的時(shí)候,自定義開發(fā)了開關(guān)(switch)組件,現(xiàn)將代碼整理如下,方便日后復(fù)用。

toggle-switch.vue  

<template>
  <label role="checkbox" :class="['switch', { toggled }]">
    <input type="checkbox"
           class="switch-input"
           @change="toggle"/>
    <div class="switch-core"
         :style="{backgroundColor: toggled ? colorChecked  : colorUnchecked}">
      <div class="switch-button"
           :style="{transition: `transform ${speed}ms`,
           transform: toggled ? null: `translate3d(32px, 0px, 0px)`}">
      </div>
    </div>
    <span class="switch-label label-right"
          v-if="toggled"
          v-html="labelChecked">
     </span>
    <span class="switch-label label-left"
          v-html="labelUnchecked" v-else>
    </span>
  </label>
 
</template>
 
<script>
  export default {
    name: 'ToggleSwitch',
    data () {
      return {
        toggled: this.value,
        colorChecked: '#25b9e9',
        colorUnchecked: '#db572e',
        labelChecked: '開',
        labelUnchecked: '關(guān)'
      }
    },
    props: {
      value: {
        type: Boolean,
        default: true
      },
      speed: {
        type: Number,
        default: 100
      }
    },
    methods: {
      toggle (event) {
        this.toggled = !this.toggled
        this.$emit('change', event)
      }
    }
  }
</script>
 
<style lang="scss" scoped>
 
  .switch {
    display: inline-block;
    position: relative;
    overflow: hidden;
    vertical-align: middle;
    user-select: none;
    font-size: 10px;
    cursor: pointer;
 
    .switch-input {
      display: none;
    }
 
    .switch-label {
      position: absolute;
      top: 0;
      font-weight: 600;
      color: white;
 
      z-index: 2;
 
      &.label-left {
        left: 10px;
        line-height: 20px;
        border-top-left-radius: 2px;
        border-bottom-left-radius:2px;
      }
 
      &.label-right {
        right: 10px;
        line-height: 20px;
        border-top-right-radius: 2px;
        border-bottom-right-radius:2px;
      }
    }
 
    .switch-core {
      display: block;
      position: relative;
      box-sizing: border-box;
      outline: 0;
      margin: 0;
      transition: border-color .3s, background-color .3s;
      user-select: none;
      width: 64px;
      height: 20px;
      border-radius: 4px;
      line-height: 20px;
 
      .switch-button {
        width: 32px;
        height: 20px;
        display: block;
        position: absolute;
        overflow: hidden;
        top: 0;
        left: 0;
        z-index: 3;
        transform: translate3d(0, 0, 0);
        background-color: #ecf0f5;
      }
    }
  }
</style>

App.vue

<template>
  <div id="app">
    <div class="left">
      <toggle-switch></toggle-switch>
    </div>
    <div class="main">
      <router-view></router-view>
    </div>
  </div>
</template>
 
<script>
  import ToggleSwitch from '@/components/toggle-switch'
  export default {
    name: 'app',
    components: {
      ToggleSwitch
    }
  }
</script>
 
<style>
  #app {
    font-family: 'Microsoft YaHei','Avenir', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: left;
    color: #2c3e50;
    height:100%;
  }
 
  .left {
    margin: 50px 200px;
  }
  .main{
    float:left;
    width:95%;
    background-color: #EFF2F7;
    height:100%;
    overflow: auto;
 
  }
</style>

到此這篇關(guān)于vue.js實(shí)現(xiàn)開關(guān)(switch)組件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中mapbox地圖顯示一半的問題及解決方法

    vue中mapbox地圖顯示一半的問題及解決方法

    在vue中創(chuàng)建mapbox地圖,地圖只顯示一般,查看瀏覽器開發(fā)者工具,發(fā)現(xiàn)將canvas.mapboxgl-canvas 的position:absolute去掉就解決了,今天小編通過本文給大家分享詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 一文秒懂vue-property-decorator

    一文秒懂vue-property-decorator

    這篇文章主要介紹了vue-property-decorator的簡(jiǎn)單知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • vue+Echart實(shí)現(xiàn)立體柱狀圖

    vue+Echart實(shí)現(xiàn)立體柱狀圖

    這篇文章主要為大家詳細(xì)介紹了vue+Echart實(shí)現(xiàn)立體柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • keep-alive include和exclude無效問題及解決

    keep-alive include和exclude無效問題及解決

    這篇文章主要介紹了keep-alive include和exclude無效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue實(shí)現(xiàn)導(dǎo)航欄下拉菜單

    vue實(shí)現(xiàn)導(dǎo)航欄下拉菜單

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)導(dǎo)航欄下拉菜單,帶展開收縮動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • vue-router的鉤子函數(shù)用法實(shí)例分析

    vue-router的鉤子函數(shù)用法實(shí)例分析

    這篇文章主要介紹了vue-router的鉤子函數(shù)用法,結(jié)合實(shí)例形式分析了vue路由鉤子分類及vue-router鉤子函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2019-10-10
  • vue3一個(gè)元素如何綁定兩個(gè)或多個(gè)事件

    vue3一個(gè)元素如何綁定兩個(gè)或多個(gè)事件

    這篇文章主要介紹了vue3一個(gè)元素如何綁定兩個(gè)或多個(gè)事件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MVVM模型在Vue中的使用詳解

    MVVM模型在Vue中的使用詳解

    MVVM模型主要是為了分離視圖(View)和模型(Model),其優(yōu)點(diǎn)為:低耦合、可重用性、獨(dú)立開發(fā)以及可測(cè)試,視圖和模型分離的特點(diǎn)給了 Vue 很大的啟發(fā),這篇文章主要介紹了MVVM模型在Vue中的使用,需要的朋友可以參考下
    2022-11-11
  • vue3獲取當(dāng)前路由地址

    vue3獲取當(dāng)前路由地址

    本文詳細(xì)講解了vue3獲取當(dāng)前路由地址的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • 詳解vue-cli項(xiàng)目中的proxyTable跨域問題小結(jié)

    詳解vue-cli項(xiàng)目中的proxyTable跨域問題小結(jié)

    這篇文章主要介紹了詳解vue-cli項(xiàng)目中的proxyTable跨域問題小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02

最新評(píng)論

罗甸县| 会昌县| 梨树县| 遵义市| 怀集县| 遂溪县| 博湖县| 慈利县| 济阳县| 新营市| 保山市| 高邮市| 阳新县| 都昌县| 左云县| 柞水县| 湾仔区| 临邑县| 定日县| 星子县| 汕头市| 沧州市| 资源县| 新泰市| 涞源县| 蕲春县| 孝义市| 绥中县| 丹江口市| 龙胜| 清流县| 辽宁省| 额尔古纳市| 根河市| 阳泉市| 治多县| 开鲁县| 苍梧县| 永济市| 高邑县| 华阴市|