对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>
分享到:
相关推荐
我的项目本来用的element,但是switch开关不符合设计要求,于是自己封装了一个switch组件,并且实现了switch开关的双向数据绑定 [> <input type=checkbox class=switch-input @change=toggle /> <div ...
Bootstrap3 是一个流行的前端开发框架,它提供了丰富的样式和组件,极大地简化了...对于 Vue 学习者来说,了解如何将这些插件与 Vue 结合使用,如利用 Vue 的组件系统来封装 Bootstrap 功能,也是一个重要的实践课题。
本文实例为大家分享了vue使用vant中的checkbox实现全选功能的具体代码,供大家参考,具体内容如下 <li v-for=(item, key=index> <van v-model=item.flag class=listli > <p>{{ item.name
Vue组件中的实现示例: ```javascript <a-button type="primary" @click="screen">全屏</a-button> export default { name: "index", data() { return { fullscreen: false }; }, methods: { ...
以一个toggle按钮控制p元素显隐为例,如果不使用过渡效果,则如下所示 <button v-on:click=show = !show>Toggle</button> <p v-if=show>蓝色理想 [removed] new Vue({ el: '#demo', data: { ...
在实际开发中,Bootstrap Table不仅可以用于展示和管理数据,还可以与其他前端框架(如Vue、React、Angular等)结合,通过相应的适配器或封装库来实现更高级的交互和绑定。此外,Bootstrap Table还支持国际化、...
jQuery UI 可以与其他JavaScript库和框架如AngularJS、React、Vue等配合使用,通过适当的封装和适配,实现更复杂的交互功能。 总之,jQuery UI 是一个强大且灵活的前端开发工具,它的丰富组件和强大的交互能力使得...
在实际项目中,这样的代码可能需要进一步优化,比如增加防抖处理以提高性能,或者封装成一个可复用的组件。此外,还可以考虑使用现代前端框架(如React、Vue或Angular)来构建更复杂的交互逻辑。 总结来说,"下拉框...
- NATOURS项目可能采用了React、Vue等现代前端框架,这些框架使用组件化开发,提高代码复用和管理性。 - 状态管理:如React的Redux或Vue的Vuex,用于管理全局状态。 - 路由管理:如React Router或Vue Router,...
例如,一个`toggleState()`函数可能会用来切换某个状态,或者`updateState(newState)`方法会根据传入的新状态来更新当前状态。 4. **事件监听**: JavaScript的事件驱动模型允许我们监听用户的交互,如点击、滚动...