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 调试利器 Firebug使用详解六
Jul 05 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
微信小程序画布圆形进度条显示效果
Nov 17 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 Javascript
JS实现旋转木马轮播图
Jan 01 Javascript
create-react-app开发常用配置教程
Jun 25 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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
jQuery实现文件上传进度条特效
2015/08/12 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
不使用 JS 匿名函数理由
2017/11/17 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python去除扩展名的实例讲解
2018/04/23 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Python过滤序列元素的方法
2020/07/31 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
文秘自荐信
2013/10/20 职场文书
高级护理专业毕业生推荐信
2013/12/25 职场文书
医德医魂心得体会
2014/09/11 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书