• 切换开关 参考


    这里提供切换开关的一个方案,效果如图:

    这个效果的实质是checkbox。切换效果完美兼容IE8 / 9 / 10 / FF / Chrome / Safari...

    代码很简单:

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="css/switch.css"/>
    </head>
    <body>
    <div class="switch">
        <form><input type="checkbox"/></form>
    </div>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script src="js/switch.js"></script>
    </body>
    </html>
    


    所需文件:

    两个JS / 一个CSS / 一个Image。

    Image:

    CSS:

    .switch{ font:12px/16px Verdana;}
    .switch .tzCheckBox{
    	background:url('../images/background.png') no-repeat right bottom;
    	display:inline-block;
    	min-60px;
    	height:33px;
    	white-space:nowrap;
    	position:relative;
    	cursor:pointer;
    	margin-left:14px;
    }
    
    .switch .tzCheckBox.checked{
    	background-position:top left;
    	margin:0 14px 0 0;
    }
    
    .switch .tzCheckBox .tzCBContent{
    	color: white;
    	line-height: 31px;
    	padding-right: 38px;
    	text-align: right;
    }
    
    .switch .tzCheckBox.checked .tzCBContent{
    	text-align:left;
    	padding:0 0 0 38px;
    }
    
    .switch .tzCBPart{
    	background:url('../images/background.png') no-repeat left bottom;
    	14px;
    	position:absolute;
    	top:0;
    	left:-14px;
    	height:33px;
    	overflow: hidden;
    }
    
    .switch .tzCheckBox.checked .tzCBPart{
    	background-position:top right;
    	left:auto;
    	right:-14px;
    }


     

    JS:

    $(document).ready(function(){
    	
    	$('input[type=checkbox]').tzCheckbox({labels:['Enable','Disable']});
    });
    
    (function($){
    	$.fn.tzCheckbox = function(options){
    
    		//默认是ON和OFF:
    
    		options = $.extend({
    			labels : ['ON','OFF']
    		},options);
    
    		return this.each(function(){
    			var originalCheckBox = $(this),
    				labels = [];
    
    			// 检查data-on和data-off属性:
    			if(originalCheckBox.data('on')){
    				labels[0] = originalCheckBox.data('on');
    				labels[1] = originalCheckBox.data('off');
    			}
    			else labels = options.labels;
    
    			// 生成开关HTML代码
    			var checkBox = $('<span>',{
    				className	: 'tzCheckBox '+(this.checked?'checked':''),
    				html:	'<span class="tzCBContent">'+labels[this.checked?0:1]+
    						'</span><span class="tzCBPart"></span>'
    			});
    
    			//插入开关代码,并隐藏原始的checkbox 
    			checkBox.insertAfter(originalCheckBox.hide());
    
    			checkBox.click(function(){
    				checkBox.toggleClass('checked');
    
    				var isChecked = checkBox.hasClass('checked');
    
    				// 记录开关变化至原始的checkbox中
    				originalCheckBox.attr('checked',isChecked);
    				checkBox.find('.tzCBContent').html(labels[isChecked?0:1]);
    			});
    
    			// 监听原始checkbox的改变,做开关模拟点击
    			originalCheckBox.bind('change',function(){
    				checkBox.click();
    			});
    		});
    	};
    })(jQuery);


    兄弟姐妹们,别忘js和css及image的路径配置。

    供你们和我自己参考,哈哈。

  • 相关阅读:
    简单的抽奖程序
    WinForm——记住密码
    《Effective C#中文版:改善C#程序的50种方法》读书笔记
    初入博客,给自己的学习定一个目标。
    做IT博客的第一天哈哈
    多表关联查询加内联形式收藏
    UpdateProgress的AssociatedUpdatePanelID属性增加后依然不显示的问题解决(转载)
    SQL Server2005安装找不到SQL Server Management Studio解决办法
    Access中not in优化方式
    App.Config文件中包含中文汉字程序出错的解决办法
  • 原文地址:https://www.cnblogs.com/james1207/p/3313387.html
Copyright © 2020-2023  润新知