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 解析url的search方法
Feb 09 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
更快的异步执行(setTimeout多浏览器)
Aug 12 Javascript
jQuery中index()方法用法实例
Dec 27 Javascript
JavaScript实现可拖拽的拖动层Div实例
Aug 05 Javascript
js添加绑定事件的方法
May 15 Javascript
浅谈jQuery before和insertBefore的区别
Dec 04 Javascript
Mongoose中document与object的区别示例详解
Sep 18 Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 Javascript
小程序云开发之用户注册登录
May 18 Javascript
JavaScript实现alert弹框效果
Nov 19 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
用PHP动态创建Flash动画
2006/10/09 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
Python Flask基础教程示例代码
2018/02/07 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
应届生煤化工求职信
2013/10/21 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015政治思想表现评语
2015/03/25 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript