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的类继承
Mar 05 Javascript
jquery判断浏览器类型的代码
Nov 05 Javascript
Javascript基础教程之while语句
Jan 18 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
详解解决使用axios发送json后台接收不到的问题
Jun 27 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 Javascript
JavaScript代码实现微博批量取消关注功能
Feb 05 Javascript
AngularJS实现多级下拉框
Mar 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
深入了解PHP类Class的概念
2012/06/14 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
python列表操作使用示例分享
2014/02/21 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
Python栈类实例分析
2015/06/15 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
python调用其他文件函数或类的示例
2019/07/16 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python的形参和实参使用方式
2019/12/24 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python 从attribute到property详解
2020/03/05 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
护理不良事件检讨书
2014/02/06 职场文书
工程安全生产协议书
2014/11/21 职场文书
给老婆的道歉信
2015/01/20 职场文书
幼儿园个人总结
2015/02/28 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS