一、簡介
本篇文章介紹一個比較好使用的js開關插件Switchery,該插件的樣式是ios7的滑動按鈕插件,並且將很多功能加入到配置項,簡單、靈活,支持的絕大部分瀏覽器(Chrome, Firefox, Opera, Safari, IE8+),github地址:https://github.com/abpetkov/switchery
以下為開關樣式展示:
二、使用
1.引入js
<link rel="stylesheet" href="dist/switchery.css" /> <script src="dist/switchery.js"></script>
2.初始化開關樣式
html元素
<input type="checkbox" class="js-switch" checked >
單個元素初始化
var elem = document.querySelector('.js-switch'); var init = new Switchery(elem);
多個元素統一初始化
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch')); elems.forEach(function(html) { var switchery = new Switchery(html); });
帶配置選項初始化
var config = {'color':'#fff'} var init = new Switchery(elem,config);
配置選項
defaults = { color : '#64bd63', //開關元件的顏色(十六進制或RGB值) secondaryColor : '#dfdfdf', //次要的背景顏色和邊框的顏色,當開關是關閉的 jackColor : '#fff', //抬起/按下元素的默認顏色 jackSecondaryColor: null, //第二抬起/按下元素的默認顏色 className : 'switchery', //開關元件的類名(默認樣式switchery.css) disabled : false, //啟用或禁用單擊事件和改變開關的狀態(布爾值) disabledOpacity : 0.5, //不透明度,當不可見時為true(范圍0-1) speed : '0.1s', //轉型需要的時間長度,動畫效果長度。 size : 'default' //樣式的大小(small or large) }
三、在事件中使用
在點擊開關時候,通過以下事件獲取當前checkbox的狀態,可操作對應事件
on change:
var changeCheckbox = document.querySelector('.js-check-change'); changeCheckbox.onchange = function() { alert(changeCheckbox.checked); };
on click:
var clickCheckbox = document.querySelector('.js-check-click') , clickButton = document.querySelector('.js-check-click-button'); clickButton.addEventListener('click', function() { alert(clickCheckbox.checked); });
jqery版本:
$('.js-switch').change(function () { alert(this.checked) })
四、API介紹
1.設置開關禁用或者啟用
//禁用 switchery.disable(); //可用 switchery.enable(); //switchery是初始化后的對象
2.設置開關開啟或者關閉
Switchery.setPosition(false); //設置按鈕為開啟狀態 Switchery.handleOnchange(true); //設置按鈕為關閉狀態