欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

常用插件

程序员文章站 2022-07-12 21:10:52
...
// 带搜索框的下拉框插件Bootstrap-select
// 使用方法
<link rel="stylesheet" href="bootstrap-3.3.4.css">
<link rel="stylesheet" href="bootstrap-select.css">
<script src="jquery.min.js"></script>
<script src="bootstrap-3.3.4.js"></script>
<script src="bootstrap-select.js"></script>

<form class="form-inline">
    <div class="form-group">
       <label class="col-md-1 control-label" for="lunch">Lunch:</label>
    </div>
    <div class="form-group">
       <select id="lunch" class="selectpicker" data-live-search="true" title="">
          <option>Hot Dog, Fries and a Soda</option>
          <option>Burger, Shake and a Smile</option>
          <option>Sugar, Spice and all things nice</option>
          <option>Baby Back Ribs</option>
          <option>A really really long option made to illustrate an issue with the live search in an inline form</option>
       </select>
    </div>
</form>
// 表单验证插件validate
// 使用方法
<form action="" id="demoForm">
    <fieldset>
	<legend>用户登录</legend>
	<p id="info"></p>
	<p>
	    <label for="username">用户名</label>
	    <input type="text" id="username" name="username" class="input">
	</p>
        <p>
	    <label for="password">密码</label>
	    <input type="password" id="password" name="password" class="input">
	</p>
	<p>
	    <label for="confirmPassword">确认密码</label>
	    <input type="password" id="confirmPassword" name="confirmPassword" class="input">
	</p>
	<p>
	     <button>检查表单</button>
	</p>
	<p>
	     <input type="submit" value="登录" id="check">
	</p>
    </fieldset>
</form>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/messages_zh.js"></script>

<script type="text/javascript">
	$(function(){

/*
   基本验证方法
   required  必填       remote     远程校验
   minlength 最小长度   maxlength  最大长度     rangelength  长度范围
   min       最小值     max        最大值       range        值范围
   email     email格式  url        URL格式      date         日期
   number    数字       digits     整数         equalTo      与另一元素值相等
   
   :blank 	  选择所有值为空的元素
   :filled 	  选择所有值不为空的元素
   :unchecked 选择所有没有被选中的元素

*/
		$('#demoForm').validate({
			rules:{
				username:{
					required:true,
					minlength:2,
					maxlength:19,
				//  remote:'remote.json'   
				//  remote:{
				//  	url:'remote.json',
				//  	type:'post',
				//  	data:{
				//  		loginTime:function(){
				//  			return +new Date;
				//  		}
				//  	}
				//  }
					rangelength:[2,19],
				//  email:true,
				//  url:true,
				//  date:true,
				//  
				},
				password:{
					required:true,
					minlength:2,
					maxlength:16,
				},
				confirmPassword:{
					equalTo:'#password',
				}
			},
			messages:{
				username:{
					// required:'请输入用户名',
					minlength:'最少输入两位',
					maxlength:'最多输入十位',
					rangelength:'在2-19位之间',
				},
				password:{
					// required:'请输入密码',
					minlength:'最少输入两位',
					maxlength:'最多输入十六位',
				},
				confirmPassword:{
					equalTo:'',
				}
			},

			// debug: true,     // 为true表示表单不会提交,只进行检查
			// groups:{
			// 	login:'username password confirmPassword'
			// },
			// errorPlacement:function(error,element){
			// 	error.insertBefore('#info')
			// }

		});


// 自定义验证方法
		$.validator.addMethod('postcode',function(value,element){
			var postcode=/^[0-9]{6}$/;
			return this.optional(element) || (postcode.test(value));
		},'请填写正确的邮编!');


// valid方法:检查表单或某些元素是否有效
		$('#check').click(function(){
			alert($('#demoForm').valid()?'填写正确':'填写错误')
		})
	})
</script>
// 日期插件bootstrap-datetimepicker
// 使用方法
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-datetimepicker.min.css" rel="stylesheet">
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker.zh-CN.js"></script>

<form action="" class="form-horizontal">
    <fieldset>
        <legend>Test</legend>
	<div class="control-group">
            <label class="control-label">Date Picking</label>
            <div class="controls input-append date form_date" data-date="" data-link-field="dtp_input2" >
                <input size="16" type="text" value="" readonly>
                <span class="add-on"><i class="icon-remove"></i></span>
		<span class="add-on"><i class="icon-th"></i></span>
            </div>
	    <input type="hidden" id="dtp_input2" value="" /><br/>
        </div>
    </fieldset>
</form>

<script type="text/javascript">
    $('.form_date').datetimepicker({
        language: 'zh-CN',     // 显示中文
        format: 'yyyy-mm-dd',  // 显示格式  yyyy-mm-dd HH:mm:ss
        weekStart: 1,          // 一周从哪一天开始,即表头上是从周几开始排,0表示周日开始,1表示周一开始
        todayBtn:  1,          // 显示今日按钮,1:true,0:false
	autoclose: 1,          // 选择日期后自动关闭
	todayHighlight: 1,     // 高亮当前日期
	startView: 2,          // 日期时间选择器打开之后首先显示的视图,0:选择秒,1:选择小时,2:选择几号,3:选择几月,4:选择哪年
	minView: 2,            // 日期时间选择器所能够提供的最精确的时间选择视图
        maxView: 4,            // 日期时间选择器最高能展示的选择范围视图
        keyboardNavigation: 1, // 是否允许通过方向键改变日期
    });
</script>
// 上传插件 WebUploader
// 使用方法
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="webuploader.css">
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="bootstrap.min.js"></script>
<script type="text/javascript" src="webuploader.min.js"></script>

<div id="uploader-demo">  
   <!--用来存放文件信息-->  
    <div id="thelist" class="uploader-list"></div>  
    <div class="btns">  
	 <div id="filePicker">选择图片</div>  
	 <button id="ctlBtn" class="btn btn-default">开始上传</button>  
    </div>  
</div>  

<script type="text/javascript">  
$(function(){  
   /*init webuploader*/  
   var $list=$("#thelist");   //这几个初始化全局的百度文档上没说明,好蛋疼。  
   var $btn =$("#ctlBtn");   //开始上传  
   var thumbnailWidth = 100;   //缩略图高度和宽度 (单位是像素),当宽高度是0~1的时候,是按照百分比计算,具体可以看api文档  
   var thumbnailHeight = 100;  
  
   var uploader = WebUploader.create({  
       // 选完文件后,是否自动上传。  
       auto: false,  
  
       // swf文件路径  
       swf: 'Uploader.swf',  
  
       // 文件接收服务端。  
       server: '/apm-web/a/test/',  
  
       // 选择文件的按钮。可选。  
       // 内部根据当前运行是创建,可能是input元素,也可能是flash.  
       pick: '#filePicker',  
  
       // 只允许选择图片文件。  
       accept: {  
           title: 'Images',  
           extensions: 'gif,jpg,jpeg,bmp,png',  
           mimeTypes: 'image/*'  
       },  
       method:'POST',  
   });  
   // 当有文件添加进来的时候  
   uploader.on( 'fileQueued', function( file ) {  // webuploader事件.当选择文件后,文件被加载到文件队列中,触发该事件。等效于 uploader.onFileueued = function(file){...} ,类似js的事件定义。  
       var $li = $(  
               '<div id="' + file.id + '" class="file-item thumbnail">' +  
                   '<img>' +  
                   '<div class="info">' + file.name + '</div>' +  
               '</div>'  
               ),  
           $img = $li.find('img');  
  
  
       // $list为容器jQuery实例  
       $list.append( $li );  
  
       // 创建缩略图  
       // 如果为非图片文件,可以不用调用此方法。  
       // thumbnailWidth x thumbnailHeight 为 100 x 100  
       uploader.makeThumb( file, function( error, src ) {   //webuploader方法  
           if ( error ) {  
               $img.replaceWith('<span>不能预览</span>');  
               return;  
           }  
  
           $img.attr( 'src', src );  
       }, thumbnailWidth, thumbnailHeight );  
   });  
   // 文件上传过程中创建进度条实时显示。  
   uploader.on( 'uploadProgress', function( file, percentage ) {  
       var $li = $( '#'+file.id ),  
           $percent = $li.find('.progress span');  
  
       // 避免重复创建  
       if ( !$percent.length ) {  
           $percent = $('<p class="progress"><span></span></p>')  
                   .appendTo( $li )  
                   .find('span');  
       }  
  
       $percent.css( 'width', percentage * 100 + '%' );  
   });  
  
   // 文件上传成功,给item添加成功class, 用样式标记上传成功。  
   uploader.on( 'uploadSuccess', function( file ) {  
       $( '#'+file.id ).addClass('upload-state-done');  
   });  
  
   // 文件上传失败,显示上传出错。  
   uploader.on( 'uploadError', function( file ) {  
       var $li = $( '#'+file.id ),  
           $error = $li.find('div.error');  
  
       // 避免重复创建  
       if ( !$error.length ) {  
           $error = $('<div class="error"></div>').appendTo( $li );  
       }  
  
       $error.text('上传失败');  
   });  
  
   // 完成上传完了,成功或者失败,先删除进度条。  
   uploader.on( 'uploadComplete', function( file ) {  
       $( '#'+file.id ).find('.progress').remove();  
   });  
      $btn.on( 'click', function() {  
        console.log("上传...");  
        uploader.upload();  
        console.log("上传成功");  
      });  
  });  
 </script>
// 滚动条插件jquery.nicescroll
// 使用方法
<style>
   #content1,#content2,#content3{ width:200px; height:500px; border:1px solid #ddd; overflow:auto; padding:10px;}
   #inner{ width: 500px; height: 300px; }
</style>

<div id="content1">
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
    <p>这是填充字1填充字1</p>
</div>
<div id="content2">
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
    <p>这是填充字2填充字2</p>
</div>
<!-- 水平滚动 -->
<div id="content3">
    <div id="inner">
        <p>这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3</p>
        <p>这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3</p>
        <p>这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3</p>
        <p>这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3</p>
        <p>这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3这是填充字3填充字3</p>
    </div>
</div>

<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/jquery.nicescroll.min.js"></script>
<script>
    $('#content1').niceScroll({
        cursorcolor: "#424242",//滚动条的颜色
        background: "", // 轨道的背景颜色        
        cursoropacitymin: 0, // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0
        cursoropacitymax: 1, // 当滚动条是显示状态时改变透明度, 值范围 1 到 0

        cursorwidth: "5px",   //滚动条的宽度
        cursorminheight: 32, // 设置滚动条的最小高度 (像素)
        railpadding: { top:0, right:0, left:0, bottom:0 },//滚动条的位置
        cursorborder: "1px solid #fff", // 游标边框css定义
        cursorborderradius: "5px",//以像素为光标边界半径  圆角
        zindex:"auto",//给滚动条设置z-index值
    });
    $('#content2').niceScroll({
        cursorcolor: "#424242",//滚动条的颜色
        background: "", // 轨道的背景颜色        
        cursoropacitymin: 0, // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0
        cursoropacitymax: 1, // 当滚动条是显示状态时改变透明度, 值范围 1 到 0

        cursorwidth: "5px",   //滚动条的宽度
        cursorminheight: 32, // 设置滚动条的最小高度 (像素)
        railpadding: { top:0, right:0, left:0, bottom:0 },//滚动条的位置
        cursorborder: "1px solid #fff", // 游标边框css定义
        cursorborderradius: "5px",//以像素为光标边界半径  圆角
        zindex:"auto",//给滚动条设置z-index值
    });
    $('#content3').niceScroll({
        cursorcolor: "#424242",            //滚动条的颜色
        background: "",                    // 轨道的背景颜色        
        cursoropacitymin: 0,               // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0
        cursoropacitymax: 1,               // 当滚动条是显示状态时改变透明度, 值范围 1 到 0

        cursorwidth: "5px",                //滚动条的宽度
        cursorminheight: 32,               // 设置滚动条的最小高度 (像素)
        railpadding: { top:0, right:0, left:0, bottom:0 },//滚动条的位置
        cursorborder: "1px solid #fff",    // 游标边框css定义
        cursorborderradius: "5px",         //以像素为光标边界半径  圆角
        zindex:"auto",                     //给滚动条设置z-index值
        enablemousewheel: true,            // nicescroll可以管理鼠标滚轮事件
        enablekeyboard: true,              // nicescroll可以管理键盘事件
        oneaxismousemode: "auto",          //当只有水平滚动时可以用鼠标滚轮来滚动,如果设为false则不支持水平滚动,如果设为auto支持双轴滚动

        // scrollspeed: 60, // 滚动速度
        // mousescrollstep: 40, // 鼠标滚轮的滚动速度 (像素)
        // touchbehavior: false, // **拖拽滚动
        // boxzoom: false, // **放大box的内容
        // dblclickzoom: true, // (仅当 boxzoom=true时有效)双击box时放大
        // gesturezoom: true, // (仅 boxzoom=true 和触屏设备时有效) **变焦当out/in(两个手指外张或收缩)
        // grabcursorenabled: true // (仅当 touchbehavior=true) 显示“抓住”图标display "grab" icon
        // autohidemode: true,                // 隐藏滚动条的方式, 可用的值: true 无滚动时隐藏,  "cursor" 隐藏  false 不隐藏, "leave" 仅在指针离开内容时隐藏,  "hidden" 一直隐藏, "scroll" 仅在滚动时显示    

        // iframeautoresize: true,            // 在加载事件时自动重置iframe大小
        // preservenativescrolling: true,     // 你可以用鼠标滚动可滚动区域的滚动条和增加鼠标滚轮事件
        // railoffset: false,                 // 可以使用top/left来修正位置
        // bouncescroll: false,               // (only hw accell) 启用滚动跳跃的内容移动
        // spacebarenabled: true,             // 当按下空格时使页面向下滚动
        // disableoutline: true,              // 当选中一个使用nicescroll的div时,chrome浏览器中禁用outline
        // horizrailenabled: true,            // nicescroll可以管理水平滚动
        // railalign: right,                  // 对齐垂直轨道
        // railvalign: bottom,                // 对齐水平轨道
        // enabletranslate3d: true,           // nicescroll 可以使用CSS变型来滚动内容
        // smoothscroll: true,                // ease动画滚动
        // sensitiverail: true,               // 单击轨道产生滚动
        // enablemouselockapi: true,          // 可以用鼠标锁定API标题 (类似对象拖动)
        // cursorfixedheight: false,          // 修正光标的高度(像素)
        // hidecursordelay: 400,              // 设置滚动条淡出的延迟时间(毫秒)
        // directionlockdeadzone: 6,          // 设定死区,为**方向锁定(像素)
        // nativeparentscrolling: true,       // 检测内容底部便于让父级滚动
        // enablescrollonselection: true,     // 当选择文本时**内容自动滚动
        // cursordragspeed: 0.3,              // 设置拖拽的速度
        // rtlmode: "auto",                   // DIV的水平滚动从左边开始
        // cursordragontouch: false,          // 使用触屏模式来实现拖拽
        // scriptpath: ""                     // 为boxmode图片自定义路径 ("" => same script path)
        // preventmultitouchscrolling: true   // 防止多触点事件引发滚动
 

// 注意:不显示滚动条的原因和解决方法
// 原因一:需要滚动条的标签使用了绝对布局(position:absolute),而且z-index>0。
// 解决办法:niceScroll({zindex:200});这里设置zindex的值要比标签的z-index大。
// 原因二:需要滚动条的标签使用了ajax填充数据。
// 解决办法:将$(selector).niceScroll()放在ajax返回成功的函数里,即在ajax完成时填充数据完成后,在给标签绑定滚动条。

    });
</script>


相关标签: 前端插件