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 相关文章推荐
JS查看对象功能代码
Apr 25 Javascript
自写简单JS判断是否已经弹出页面
Oct 20 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
Apr 05 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
Aug 18 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
JS实现从对象获取对象中单个键值的方法示例
Jun 05 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
利用PHP实现递归删除链表元素的方法示例
Oct 23 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
js中的string.format函数代码
2020/08/11 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
Python中的各种装饰器详解
2015/04/11 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
python 日志增量抓取实现方法
2018/04/28 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
广告学专业推荐信范文
2013/11/23 职场文书
银行出纳岗位职责
2013/11/25 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
mysql 索引合并的使用
2021/08/30 MySQL