`

Bootstrap Switch 开关控件

阅读更多
  1. Bootstrap Switch开关控件网址:http://www.bootcss.com/p/bootstrap-switch/
  2. 引入.
    Bootstrap Switch插件和依赖插件,并初始化开关控件
    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
    	<meta charset="UTF-8">
    	<title>Bootstrap Switch 开关控件</title>
    	<link rel="stylesheet" href="css/bootstrap.css">
    	<link rel="stylesheet" href="css/bootstrap-switch.css">
    	<script type="text/javascript" src="js/jQuery.js"></script>
    	<script type="text/javascript" src="js/bootstrap-switch.js"></script>
    	<script type="text/javascript">
    		$(function(){
    			/*初始化开关控件*/
    			$('[name="checkbox-name"]').bootstrapSwitch();
    		});
    	</script>
    </head>
    <body>	
    	<div class="jumbotron">
    		<div class="container">
    			<input type="checkbox" name="checkbox-name" checked>
    		</div>
    	</div>	
    	
    </body>
    </html>
      Bootstrap Switch控件没有class自动加载渲染(初始化),只能通过js初始化方式渲染,如上例.
  3. 属性.
    在js中初始化开关控件时,可以指定配置项,如下例子
    <script type="text/javascript">
        $.fn.bootstrapSwitch.defaults.size = 'mini';//修改开光控件默认选项大小的值
    	$(function(){
    	    /*初始化开关控件,指定配置项*/
    	    $('[name="checkbox-name"]').bootstrapSwitch({
    		state:true,//勾选状态,对应checkbox的checked属性
    		size : 'large',//大小,默认为null(与normal大小相同),值可为null,'mini','small','normal','large'
    		animate:false,//切换过程的动画,默认为true
    		disabled : true,//禁用,对应checkbox的disabled属性,默认为false
    		readonly : true,//只读,对应checkbox的readonly属性,默认为false
    		indeterminate:true,//未选的,默认为false
    		inverse:true,//开关方向
    		onColor:'danger',//表示选中文本的背景色,默认为'primary',值可为'primary','info','success','warning','danger','default'
    		offColor:'info',//表示位选中文本的背景色,默认为'default',值可为'primary','info','success',warning','danger','default'
    		onText:'喜欢',//选中文本,默认为'ON'
    		offText:'再考虑吧',//未选中文本,默认为'OFF'
    		labelText:'点击切换',//开关控件中间部分显示文本,默认为'&nbsp;'
    		handleWidth:50,//开关控件选中文本与未选中文本的长度,默认为'auto'
    		labelWidth:0,//开关控件中间部分显示文本的长度,默认为'auto'
    		baseClass:'bootstrap-switch',//开关控件全局class的前缀,默认为'bootstrap-switch',
    		wrapperClass:['custom-wrapper','wrapper'],//开关控件最外层容器的样式类,值可为数组或字符串,默认为'wrapper'
    		onInit:function(element,event,state){//控件初始化时触发
    			console.log('onInit:');
    			console.log(this);//开关控件的jQuery对象
    			console.log(element);//checkbox的DOM elememt元素
    			console.log(event);//jQuery事件
    			console.log(state);//开关的初始化选中状态
    		},
    
    		onSwitchChange:function(event,state){//控件状态改变时触发
    			console.log('onSwitchChange:');
    			console.log(this);//checkbox的DOM elememt元素
    			console.log(event);//jQuery事件
    			console.log(state);//开关切换后的选中状态
    		}
    
    	});
              //以下是调用开关控件的方法
    		$('[name="checkbox-name"]').bootstrapSwitch('disabled',false);
    		$('[name="checkbox-name"]').bootstrapSwitch('readonly',false);
    		$('[name="checkbox-name"]').bootstrapSwitch('indeterminate',false);
    		$('[name="checkbox-name"]').bootstrapSwitch('state',false);
    	});
    </script>
     
    也可以在元素内指定配置项.在元素内指定配置项时,除checked,readonly,和disabled直接作为元素属性配置外,其它配置项是js配置项中对应配置项的驼峰方式改为'-'线方式并加'data-'前缀.如
    <input type="checkbox" name="checkbox-name" checked data-on-color="danger" data-indeterminate="true" data-size="large"/>
    <div>
         /*data-radio-all-off对应的js配置项为radioAllOff,是radio元素特有的属性配置项,意思是同一组radio是否可以全不选*/
        <input type="radio" name="radioName" data-radio-all-off="false">
        <input type="radio" name="radioName" data-radio-all-off="true">
        <input type="radio" name="radioName" data-radio-all-off="true">
    
    </div>
     js方式和元素内同时指定同一个配置属性,js的优先级高.

  4. 事件.
    <script type="text/javascript">
        $(function(){
              /*外部注册初始化时触发事件,需放在初始化开关控件前,否则触发不了*/
    	  $('input[name="checkbox-name"]').on('init.bootstrapSwitch',function(event,state){
    	      console.log('outer handler of init event:')
    	      console.log(this);//checkbox的DOM elememt元素
    	      console.log(event);//jQuery事件
    	      console.log(state);//开关切换后的选中状态
    	  });
            /*外部注册开关状态改变时触发事件,需放在开关控件改变状态方法前,否则第一次触发不了*/
            $('input[name="checkbox-name"]').on('switchChange.bootstrapSwitch',function(event,state){
    		console.log('outer handler of switchChange event:')
    		console.log(this);//checkbox的DOM elememt元素
    		console.log(event);//jQuery事件
    		console.log(state);//开关切换后的选中状态
    	   });
    	 /*初始化开关控件*/
    	 $('[name="checkbox-name"]').bootstrapSwitch({
                      /*初始化时注册初始化时触发事件*/
    		  onInit:function(element,event,state){//控件初始化时触发
    			 console.log('onInit:');
    			 console.log(this);//开关控件的jQuery对象
    			 console.log(element);//checkbox的DOM elememt元素
    			 console.log(event);//jQuery事件
    			 console.log(state);//开关的初始化选中状态
    		    },
                     /*初始化时注册状态改变时触发事件*/
    		 onSwitchChange:function(event,state){//控件状态改变时触发
    			 console.log('onSwitchChange:');
    			 console.log(this);//checkbox的DOM elememt元素
    			 console.log(event);//jQuery事件
    			 console.log(state);//开关切换后的选中状态
    		  }
    
    	     });
    	});
    </script>
     多次注册事件相同事件,不会互相覆盖.
  5. 方法
    Bootstrap Switch控件中,属性即方法,如
    <!DOCTYPE html>  
    <html lang="zh-cn">  
    <head>  
        <meta charset="UTF-8">  
        <title>Bootstrap Switch 开关控件</title>  
        <link rel="stylesheet" href="css/bootstrap.css">  
        <link rel="stylesheet" href="css/bootstrap-switch.css">  
        <script type="text/javascript" src="js/jQuery.js"></script>  
        <script type="text/javascript" src="js/bootstrap-switch.js"></script>  
        <script type="text/javascript">  
          $(function(){  
             //初始化
             $('[name="cb-name"]').bootstrapSwitch(
               onInit:function(element,event,state){//控件初始化时触发
                        console.log('onInit:');
                        console.log(this);//开关控件的jQuery对象
                        console.log(element);//checkbox的DOM elememt元素
                        console.log(event);//jQuery事件
                        console.log(state);//开关的初始化选中状态
                },
    
                onSwitchChange:function(event,state){//控件状态改变时触发
                        console.log('onSwitchChange:');
                        console.log(this);//checkbox的DOM elememt元素
                        console.log(event);//jQuery事件
                        console.log(state);//开关切换后的选中状态
                }
            });  
      
            /*设置属性方法*/
            //state方法第三个参数默认为false,设置为true时state值改变也不触发switchChange方法
            $('[name="cb-name"]').bootstrapSwitch('state',false,true);  
            $('[name="cb-name"]').bootstrapSwitch('size','large');  
            //animate虽然可设置值,但改变不了控件初始化动画状态   
            $('[name="cb-name"]').bootstrapSwitch('animate',true);
            $('[name="cb-name"]').bootstrapSwitch('disabled',true);  
            $('[name="cb-name"]').bootstrapSwitch('readonly',true);  
            $('[name="cb-name"]').bootstrapSwitch('indeterminate',true);  
            $('[name="cb-name"]').bootstrapSwitch('inverse',true);  
            $('[name="cb-name"]').bootstrapSwitch('onColor','info');  
            $('[name="cb-name"]').bootstrapSwitch('offColor','warning');  
            $('[name="cb-name"]').bootstrapSwitch('onText','恭喜');  
            $('[name="cb-name"]').bootstrapSwitch('offText','没选耶');  
            $('[name="cb-name"]').bootstrapSwitch('labelText','需切换么');  
            $('[name="cb-name"]').bootstrapSwitch('handleWidth',150);  
            $('[name="cb-name"]').bootstrapSwitch('labelWidth','auto'); 
            //baseClass只能取值,不能设值  
            $('[name="cb-name"]').bootstrapSwitch('baseClass','prefix');
            //如果第二个参数的表达式的布尔值为false时,wrapperClass重置为默认值wrapper 
            $('[name="cb-name"]').bootstrapSwitch('wrapperClass','second-checkbox-wrapper'); 
            
            /*获取属性方法*/
            console.log('state->' + $('[name="cb-name"]').bootstrapSwitch('state'));  
            console.log('size->' + $('[name="cb-name"]').bootstrapSwitch('size')); 
            console.log('animate->' + $('[name="cb-name"]').bootstrapSwitch('animate'));  
            console.log('disabled->' + $('[name="cb-name"]').bootstrapSwitch('disabled'));  
            console.log('readonly->' + $('[name="cb-name"]').bootstrapSwitch('readonly'));  
            console.log('indeterminate->' + $('[name="cb-name"]').bootstrapSwitch('indeterminate'));  
            console.log('inverse->' + $('[name="cb-name"]').bootstrapSwitch('inverse'));  
            console.log('onColor->' + $('[name="cb-name"]').bootstrapSwitch('onColor'));  
            console.log('offColor->' + $('[name="cb-name"]').bootstrapSwitch('offColor'));  
            console.log('onText->' + $('[name="cb-name"]').bootstrapSwitch('onText'));  
            console.log('offText->' + $('[name="cb-name"]').bootstrapSwitch('offText'));  
            console.log('labelText->' + $('[name="cb-name"]').bootstrapSwitch('labelText'));  
            console.log('handleWidth->' + $('[name="cb-name"]').bootstrapSwitch('handleWidth'));  
            console.log('labelWidth->' + $('[name="cb-name"]').bootstrapSwitch('labelWidth'));  
            console.log('baseClass->' + $('[name="cb-name"]').bootstrapSwitch('baseClass'));  
            console.log('wrapperClass->' + $('[name="cb-name"]').bootstrapSwitch('wrapperClass'));  
      
            $('#toggle').click(function(){ 
              console.log('---------------------toggle-------------------');   
              /*除属性可作为方法外,还有补充其它方法*/
              //toggleState方法第二个参数默认为false,设置为true时不触发switchChange方法   
              $('[name="cb-name"]').bootstrapSwitch('toggleState',true);  
              $('[name="cb-name"]').bootstrapSwitch('toggleAnimate');  
              $('[name="cb-name"]').bootstrapSwitch('toggleDisabled');  
              $('[name="cb-name"]').bootstrapSwitch('toggleReadonly');  
              $('[name="cb-name"]').bootstrapSwitch('toggleIndeterminate');  
              $('[name="cb-name"]').bootstrapSwitch('toggleInverse');
    
              /*切换后的属性值*/
              console.log('state->' + $('[name="cb-name"]').bootstrapSwitch('state'));  
              console.log('animate->' + $('[name="cb-name"]').bootstrapSwitch('animate'));  
              console.log('disabled->' + $('[name="cb-name"]').bootstrapSwitch('disabled'));  
              console.log('readonly->' + $('[name="cb-name"]').bootstrapSwitch('readonly'));  
              console.log('indeterminate->' + $('[name="cb-name"]').bootstrapSwitch('indeterminate'));  
              console.log('inverse->' + $('[name="cb-name"]').bootstrapSwitch('inverse'));  
                      
           });  
    
          //$('[name="cb-name"]').bootstrapSwitch('destroy');  
      
        });  
    </script>  
    </head>  
    <body>      
      <div class="jumbotron">  
         <div class="container">  
            <input type="checkbox" name="cb-name"><button id="toggle">toggle</button>  
          </div>  
       </div>   
    </body>  
    </html>
     state方法的第三个参数skip与toggleState方法的第二个参数skip,默认为false,设置为true时,state属性的值改变不会触发switchChange事件
    wrapperClass方法第二个参数的表达式的布尔值为false时,wrappClass重置为默认值wrapper
分享到:
评论

相关推荐

    bootstrap-switch开关控件

    开关控件还提供了丰富的事件和方法,用于监听用户操作或动态改变开关状态。例如,我们可以监听"switch-change"事件: ```javascript $('#mySwitch').on('switch-change', function(event, data) { console.log...

    Bootstrap Switch 开关控制插件

    7. **无障碍性**:确保你的开关控件对辅助技术友好,比如添加`aria-labelledby`或`aria-describedby`属性,以帮助屏幕阅读器用户理解开关的意义。 8. **自定义样式**:如果你希望进一步定制开关的视觉效果,可以...

    bootstrap的switch控件需要引入的js和css文件

    $('input[type=checkbox]').bootstrapSwitch(); ``` 还可以通过数据属性或 JavaScript API 来定制开关的行为,例如设置开关的状态、颜色、大小等。 在实际开发中,为了提高用户体验和页面性能,我们通常会采用延迟...

    BootstrapSwitch将复选框和单选按钮变成切换开关

    BootstrapSwitch是一款基于Bootstrap框架的插件,它能够将HTML中的复选框(checkbox)和单选按钮(radio button)转化为视觉效果更佳、交互性更强的切换开关(toggle switch)。这个转换过程使得用户界面更加直观,...

    bootstrap switch开关组件使用方法详解

    然后,在 HTML 中添加一个 checkbox 输入框,并使用 jQuery 选择器选中该输入框,最后使用 bootstrapSwitch 方法来初始化开关控件。 常用属性 Bootstrap Switch 开关组件提供了多个可配置的属性,以满足不同的需求...

    bootstrap-switch bootstrap 开关

    总的来说,Bootstrap Switch 是一个强大的工具,它能够帮助开发者快速地在 Bootstrap 项目中添加功能丰富的开关控件,提升用户体验。通过灵活的配置和事件处理,你可以根据项目需求定制出满足各种场景的开关组件。

    最新开关按钮 bootstrap-switch

    Bootstrap Switch 是一个基于 Bootstrap 框架的组件,它扩展了原生的 HTML 开关(checkbox)元素,将其转换为一种交互式、可定制的开关控件。在 Web 应用开发中,这样的控件非常实用,因为它可以直观地表示二元选择...

    bootstrapSwitch

    BootstrapSwitch是一种基于Bootstrap框架的美观、实用的切换开关控件,它为网页界面提供了一种交互性强、用户体验良好的选择和切换功能。这个组件通常用于替代传统的复选框或单选按钮,使得用户能够以更直观的方式...

    Bootstrap开关(switch)控件学习笔记分享

    $('.radio2').bootstrapSwitch('toggleRadioStateAllowUncheck', true); }); ``` 启动开关控件的功能,可以遍历页面中的所有`div`元素,并通过jQuery获取并设置相应的自定义属性值,例如颜色、文字等。这可以...

    bootstrap-switch使用

    网上的bootstrap-switch使用不便,因此整理了我在项目上所使用的开关控件,结合bootstrap框架使用

    bootstrap-switch-master

    $('#mySwitch').bootstrapSwitch(); }); ``` 这只是一个基本的用法示例,实际上Bootstrap Switch提供了许多可配置选项,如颜色、大小、是否允许三态等,以及事件处理,允许开发者根据需求进行深入定制。 总的来说...

    bootstrap-switch

    bootstrap-switch开关控件,里面包含了bootstrap-switch的css和bootstrap-switch.js两个主要的文件,使用时只需要引入这两个文件,然后初始化$('[name="status"]').bootstrapSwitch({ size:"mini", onSwitchChange:...

    前端项目-angular-bootstrap-switch.zip

    在本文中,我们将深入探讨基于AngularJS的前端项目——"angular-bootstrap-switch",这是一个利用jQuery插件实现的引导开关指令。这个项目旨在为AngularJS应用提供一个易于使用的、可定制的开关组件,使得用户界面...

    H-ui.admin_v2.3.1

    │ bootstrapSwitch 开关控件 │ Hui-iconfont_v1.0 阿里图标字体库(H-ui定制) │ font-awesome 字体库文件 │ icheck 单选框、复选框控件 │ laypage laypage 翻页插件 │ layer layer弹出层插件 │ laytpl...

    H-ui.admin 前端框架

    │ bootstrapSwitch 开关控件 │ Hui-iconfont_v1.0 阿里图标字体库(H-ui定制) │ font-awesome 字体库文件 │ icheck 单选框、复选框控件 │ laypage laypage 翻页插件 │ layer layer弹出层...

    仿ios开关选择控件效果

    1. **布局设计**:在XML布局文件中,创建一个包含开关的元素,如`SwitchCompat`(对于Android)或`bootstrap-switch`(对于Web前端)。这些组件提供了基础的开关结构,并且可以自定义样式。 2. **事件监听**:添加...

    bootstrap界面demo

    3. **事件监听**:可以添加JavaScript事件监听器来响应开关状态的改变,如`switchChange.bootstrapSwitch`事件。 4. **API控制**:提供了一系列的JavaScript方法来操作开关,比如`toggleState()`用于切换状态,`...

Global site tag (gtag.js) - Google Analytics