`

vue子组件-toggle按钮组件封装

    博客分类:
  • vue
阅读更多
对checkbox及其label进行封装(两个属性):
  • checked 属性表示是否选中
  • change 事件,在点击label的时候切换checked状态,同时改变UI


<toggle text="你猜呢" @change="onToggle" :checked="checked"/>

  methods: {
    onToggle(){
      this.checked = !this.checked
      ....
    },


<template>
  <div class="toggle">
    <input type="checkbox" id="awesome" :checked="checked">
    <label for="awesome" @click="$emit('change')">{{text}}</label>
  </div>
</template>

<script>
export default {
  props: {
    text: String,
    checked: Boolean
  }
};
</script>

<style>
.toggle {
  margin-top: 30px;
  padding: 10px;
  width: 100%;
  text-align: center;
  font: 150%/1.6 sans-serif;
}
.toggle input{
	position: absolute;
	clip: rect(0,0,0,0);
}
.toggle label {
	display: inline-block;
	padding: .35em .5em .2em;
	background: #ccc;
	background-image: linear-gradient(#ddd, #bbb);
	border: 1px solid rgba(0,0,0,.2);
	border-radius: .3em;
	box-shadow: 0 1px white inset;
	text-align: center;
	text-shadow: 0 1px 1px white;
	cursor: pointer;
}
.toggle input[checked] + label{
	box-shadow: .04em .1em .2em rgba(0,0,0,.6) inset;
	border-color: rgba(0,0,0,.3);
	background: #bbb;
}
</style>

分享到:
评论

相关推荐

    vue.js封装switch开关组件的操作

    我的项目本来用的element,但是switch开关不符合设计要求,于是自己封装了一个switch组件,并且实现了switch开关的双向数据绑定 [&gt; &lt;input type=checkbox class=switch-input @change=toggle /&gt; &lt;div ...

    Bootstrap3 插件.pdf_前端学习资料

    Bootstrap3 是一个流行的前端开发框架,它提供了丰富的样式和组件,极大地简化了...对于 Vue 学习者来说,了解如何将这些插件与 Vue 结合使用,如利用 Vue 的组件系统来封装 Bootstrap 功能,也是一个重要的实践课题。

    vue使用vant中的checkbox实现全选功能

    本文实例为大家分享了vue使用vant中的checkbox实现全选功能的具体代码,供大家参考,具体内容如下 &lt;li v-for=(item, key=index&gt; &lt;van v-model=item.flag class=listli &gt; &lt;p&gt;{{ item.name

    vue-cli点击实现全屏功能

    Vue组件中的实现示例: ```javascript &lt;a-button type="primary" @click="screen"&gt;全屏&lt;/a-button&gt; export default { name: "index", data() { return { fullscreen: false }; }, methods: { ...

    Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)

    以一个toggle按钮控制p元素显隐为例,如果不使用过渡效果,则如下所示 &lt;button v-on:click=show = !show&gt;Toggle&lt;/button&gt; &lt;p v-if=show&gt;蓝色理想 [removed] new Vue({ el: '#demo', data: { ...

    bootstrap-table页面.zip

    在实际开发中,Bootstrap Table不仅可以用于展示和管理数据,还可以与其他前端框架(如Vue、React、Angular等)结合,通过相应的适配器或封装库来实现更高级的交互和绑定。此外,Bootstrap Table还支持国际化、...

    jquery UI(笔记)

    jQuery UI 可以与其他JavaScript库和框架如AngularJS、React、Vue等配合使用,通过适当的封装和适配,实现更复杂的交互功能。 总之,jQuery UI 是一个强大且灵活的前端开发工具,它的丰富组件和强大的交互能力使得...

    下拉框多选 js动态实现

    在实际项目中,这样的代码可能需要进一步优化,比如增加防抖处理以提高性能,或者封装成一个可复用的组件。此外,还可以考虑使用现代前端框架(如React、Vue或Angular)来构建更复杂的交互逻辑。 总结来说,"下拉框...

    NATOURS

    - NATOURS项目可能采用了React、Vue等现代前端框架,这些框架使用组件化开发,提高代码复用和管理性。 - 状态管理:如React的Redux或Vue的Vuex,用于管理全局状态。 - 路由管理:如React Router或Vue Router,...

    checkstate

    例如,一个`toggleState()`函数可能会用来切换某个状态,或者`updateState(newState)`方法会根据传入的新状态来更新当前状态。 4. **事件监听**: JavaScript的事件驱动模型允许我们监听用户的交互,如点击、滚动...

Global site tag (gtag.js) - Google Analytics