Bootstarp风格的toggle效果分享


Posted in Javascript onFebruary 23, 2016

 最近在写项目的时候想要一个这样的效果,

Bootstarp风格的toggle效果分享Bootstarp风格的toggle效果分享

我知道这个效果在 flat-ui中有, 但是我又不想引用一整个flat-ui;

这个效果依赖html5的transition, 所以浏览器兼容成问题;

从flat-ui中把这个效果的js和html,以及css给拨离出来;

整体的代码如下:

运行下面代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
</head>
<body>
<h1>
toggle的demo
</h1>
<style>
.toggle {
background-color: #8AB9E3;
border-radius: 60px;
color: white;
height: 29px;
margin: 5px 12px 12px 0;
overflow: hidden;
*zoom: 1;
display: inline-block;
zoom: 1;
*display: inline;
-webkit-transition: 0.25s;
-moz-transition: 0.25s;
-o-transition: 0.25s;
transition: 0.25s;
-webkit-backface-visibility: hidden;
-webkit-box-sizing: initial
}
.toggle:before, .toggle:after {
display: table;
content: "";
}
.toggle:after {
clear: both;
}
.toggle.toggle-off {
background-color: #cbd2d8;
}
.toggle.toggle-off .toggle-radio {
/*background-image: url("../images/icon-off.png")*/;
background-position: 0 0;
color: white;
left: 0;
margin-left: 0.5px;
margin-right: -13px;
z-index: 1;
}
.toggle.toggle-off .toggle-radio:first-child {
left: -120%;
}
.toggle .toggle-radio {
/*background: url("../images/icon-on.png") right top no-repeat;*/
color: #0275d8;
display: block;
font-weight: 700;
height: 21px;
left: 120%;
margin-left: -13px;
padding: 5px 32px 3px;
position: relative;
text-align: center;
z-index: 2;
-webkit-transition: 0.25s;
-moz-transition: 0.25s;
-o-transition: 0.25s;
transition: 0.25s;
-webkit-backface-visibility: hidden;
}
.toggle .toggle-radio:first-child {
margin-bottom: -29px;
left: 0;
}
.toggle input {
display: none;
position: absolute;
outline: none !important;
display: block\9;
opacity: 0.01;
filter: alpha(opacity=1);
zoom: 1;
}
.toggle.toggle-icon {
border-radius: 6px 7px 7px 6px;
}
.toggle.toggle-icon.toggle-off {
border-radius: 7px 6px 6px 7px;
}
.toggle.toggle-icon.toggle-off .toggle-radio {
/*background-image: url("../images/block-off.png");*/
background-position: 0 0;
}
.toggle.toggle-icon .toggle-radio {
/*background-image: url("../images/block-on.png");*/
background-position: 62px 0;
border-radius: 6px;
min-width: 27px;
text-align: right;
}
.toggle.toggle-icon .toggle-radio:first-child {
text-align: left;
}
</style>
<div class="toggle pull-left">
<label class="toggle-radio" for="toggleOption2">ON</label>
<input type="radio" name="toggleOptions" id="toggleOption1" value="option1" checked="checked">
<label class="toggle-radio" for="toggleOption1">OFF</label>
<input type="radio" name="toggleOptions" id="toggleOption2" value="option2">
</div>
<script src="http://cdn.bootcss.com/jquery/3.0.0-beta1/jquery.js"></script>
<script>
//toggle插件的js代码
var toggleHandler = function(toggle) {
var toggle = toggle;
var radio = $(toggle).find("input");
var checkToggleState = function() {
if (radio.eq(0).is(":checked")) {
$(toggle).removeClass("toggle-off");
} else {
$(toggle).addClass("toggle-off");
}
};
checkToggleState();
radio.eq(0).click(function() {
$(toggle).toggleClass("toggle-off");
});
radio.eq(1).click(function() {
$(toggle).toggleClass("toggle-off");
});
};
$(".toggle").each(function(index, toggle) {
toggleHandler(toggle);
});
</script>
</body>
</html>

整体的效果是依赖于jQuery, 当用户点击了label按钮会触发input的click事件, 然后判断给父级添加不同的classname;

Javascript 相关文章推荐
JavaScript Konami Code 实现代码
Jul 29 Javascript
javascript 用记忆函数快速计算递归函数
Mar 15 Javascript
javascript 打开页面window.location和window.open的区别
Mar 17 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
Mar 13 Javascript
jQuery事件_动力节点Java学院整理
Jul 05 jQuery
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
Angularjs按需查询实例代码
Oct 30 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例
Jun 28 #Javascript
Bootstrap创建可折叠的组件
Feb 23 #Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 #Javascript
Web开发必知Javascript技巧大全
Feb 23 #Javascript
JQUERY表单暂存功能插件分享
Feb 23 #Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 #Javascript
You might like
杏林同学录(一)
2006/10/09 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
sails框架的学习指南
2014/12/22 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
Python抓取百度查询结果的方法
2015/07/08 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
pycharm快捷键汇总
2020/02/14 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
公务员更新知识培训实施方案
2014/03/31 职场文书
战略合作协议书范本
2014/04/18 职场文书
读书小明星事迹材料
2014/05/03 职场文书
社区活动总结报告
2014/05/05 职场文书
校车安全责任书
2014/08/25 职场文书
授权委托书怎么写
2014/09/25 职场文书
打架检讨书
2015/01/27 职场文书
2015员工年度考核评语
2015/03/25 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
Python入门之基础语法详解
2021/05/11 Python