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 相关文章推荐
收集的10个免费的jQuery相册
Feb 26 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
JSON传递bool类型数据的处理方式介绍
Sep 18 Javascript
Node.js开启Https的实践详解
Oct 25 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
详解vue-cli 本地开发mock数据使用方法
May 29 Javascript
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
js数据类型检测总结
Aug 05 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
详解滑动穿透(锁body)终极探索
Apr 16 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文件系统处理方法小结
2016/05/23 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
python迭代器实例简析
2014/09/25 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python切图九宫格的实现方法
2019/10/10 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
开业庆典邀请函
2014/01/08 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
党员评议个人总结
2014/10/20 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书