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 相关文章推荐
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
Javascript自定义事件详解
Jan 13 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 Javascript
小程序实现tab标签页
Nov 16 Javascript
前端 javascript 实现文件下载的示例
Nov 24 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生成xml简单实例代码
2009/12/16 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
使用Python监控文件内容变化代码实例
2018/06/04 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python如何实现一个刷网页小程序
2018/11/27 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python输入中文的实例方法
2020/09/14 Python
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
信访工作者先进事迹
2014/01/17 职场文书
安全教育月活动总结
2014/05/05 职场文书
淘宝活动总结范文
2014/06/26 职场文书
员工工作自我评价
2014/09/26 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
linux下安装redis图文详细步骤
2021/12/04 Redis
Go语言安装并操作redis的go-redis库
2022/04/14 Golang