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 验证表单(form)中的单选(radio)值
Sep 08 Javascript
自写的一个jQuery圆角插件
Oct 26 Javascript
关于jquery append() html时的小问题的解决方法
Dec 16 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 Javascript
jQuery实现的placeholder效果完整实例
Aug 02 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
详解vue中使用protobuf踩坑记
May 07 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
python缩进区别分析
2014/02/15 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
公务员职务工作的自我评价
2013/11/01 职场文书
农民致富事迹材料
2014/01/23 职场文书
收银员岗位职责
2014/02/07 职场文书
小班秋游活动方案
2014/02/22 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
个性婚礼策划方案
2014/05/17 职场文书
机关工会工作总结2015
2015/05/26 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js