jquery 分页 下拉框

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
   

		<style>
		 *{ margin: 0 ;padding: 0;}
			ul,li{ list-style: none;}
			#tables{  width: 100%; height: auto;; overflow: hidden; margin-bottom: 40px;;}
			#tables li{list-style: none; width: 100px; height: 150px; overflow: hidden; border: 2px solid red;  float: left; display: inline;}
		   #tables li img{ width: 100px; float: left;}

        .fenye {
  height: 40px;
  line-height: 40px;
  position: relative; z-index: 88;;
  
  text-align: center;  
}
.fenye input {
  
 outline: 0;;
}
.fenye button {
  padding: 0 10px;
  margin: 0 10px;
  height: 40px;
  float: left; outline: 0;;
  cursor: pointer;
  border: 1px solid #ebebeb;
  background-color: #ffffff;
}
.fenye .prePage,.fenye .turnPage,.fenye .last-page,.fenye .jump-button{ background:#157fcc ; color: #fff;}


.fenye button:disabled{ 
background-color: #eee; 
}

.fenye .first-page,
.fenye .last-page {
  margin: 0;
}
.fenye .pageWrap {
  height: 38px;
  float: left;
  overflow: hidden;border: 1px solid #ebebeb;
}
.fenye .pageWrap ul {
  width: 100000px;
  height: 40px;
  float: left;list-style: none;  overflow: hidden;
}
.fenye .pageWrap ul li:first-of-type(1){
	 border-left: 1px solod #ebebeb;;
}
.fenye .pageWrap ul li:hover{
	 background-color: #eee;
}
.fenye .pageWrap ul li {list-style: none;
  width: 60px;
  height: 40px;
  border-right: 1px solid #ebebeb;
  line-height: 40px;
  box-sizing: border-box;
  cursor: pointer;
  float: left;
}
.fenye .pageWrap ul .sel-page {
  background-color: #157fcc; color: #fff;
}
.fenye .jump-text {
  width: 60px;
  height: 40px;
  box-sizing: border-box;
  text-align: center;
  margin: 0 5px;
  float: left;
}
.fenye .jump-button {
  margin: 0;
  float: left; position: relative; z-index: 89;;
}
.fenye .total-pages,
.fenye .total-count {
  margin-left: 10px;
  float: left;
  font-size: 14px;
}
.total-count{border: 1px solid #ebebeb;
    background-color: #ffffff; padding: 0 10px;}


		</style>
		
	</head>
	<body>
		
		<div id="tables">
			<li>11 动态数据</li>
		</div>
		
		<div class=" fenye" id="fenbox"></div>
   
		<div id="saa">重新初始化2</div>	
		<div style="padding: 10px;;">-----------------------------------</div>
		
		<div id="tables2">
			<li>22 动态数据</li>
		</div>
				<div class=" fenye" id="fenbox2"></div>

		
		
	<script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js">	</script>
	<script >
		
		(function($, window, document) {
    // 定义构造函数
    function Paging(el, options) {
        this.el = el;
        var defaults = {
            pageNo:  1, // 初始页码
            totalPages:  1, //总页数
            totalCount:  1, // 条目总数
            slideSpeed: 0, // 缓动速度
            jump:  false, // 支持跳转,
            first:true,
            callback:function() {} // 回调函数,
        };
        
       this.options = $.extend({},defaults,options)
        //console.log("最喜欢总",  this.options );
        
        this.init(this.el);
    }
    // 给实例对象添加公共属性和方法
    Paging.prototype = {
        constructor: Paging,
        init: function(ele) {
            this.createDom();
            this.bindEvents(ele);
        },
        createDom: function() {
            var that = this,
                ulDom = '',
                jumpDom = '',
                content = '',
                liWidth = 60, // li的宽度
                totalPages = that.options.totalPages||1, // 总页数
                wrapLength = 0;
                if(typeof totalPages!='number'||typeof totalPages<=0){
                 	totalPages=1;
                }
               
               
                
            totalPages > 5 ? wrapLength = 5 * liWidth : wrapLength = totalPages * liWidth;
            if(totalPages<=1){
               	ulDom += '<li class="sel-page">' + 1 + '</li>';
            }else{
            for (var i = 1; i <= that.options.totalPages; i++) {
            	  
                i != 1 ? ulDom += '<li>' + i + '</li>' : ulDom += '<li class="sel-page">' + i + '</li>';
            }
            }
            that.options.jump ? jumpDom = '<input type="text" placeholder="1" class="jump-text jumpText" ><button type="button" class="jump-button  jumpBtn">跳转</button>' : jumpDom = '';
            content = '<button type="button"  class="turnPage firstPage first-page">首页</button>' +
                '<button class="turnPage prePage" >上一页</button>' +
                '<div class="pageWrap" style="width:' + wrapLength + 'px">' +
                '<ul class="pageSelect"   style="transition:all ' + that.options.slideSpeed + 'ms">' +
                ulDom +
                '</ul></div>' +
                '<button class="turnPage nextPage" >下一页</button>' +
                '<button type="button"  class="last-page lastPage">尾页</button>' +
                jumpDom +
                '<p class="total-pages">共 ' +
                that.options.totalPages +
                ' 页</p>' +
                '<p class="total-count">' +
                that.options.totalCount +
                '</p>';
            that.el.html(content);
        },
        bindEvents: function(ele) {
        	 
        	
        	   var ele=ele;
            var that = this,
                pageSelect =ele.find('.pageSelect'), // ul
                lis = pageSelect.children(), // li的集合
                liWidth = lis[0]?(lis[0].offsetWidth):0, // li的宽度
                totalPages = that.options.totalPages, // 总页数
                pageIndex = that.options.pageNo, // 当前选择的页码
                distance = 0, // ul移动距离
                prePage = ele.find('.prePage'),
                nextPage = ele.find('.nextPage'),
                firstPage = ele.find('.firstPage'),
                lastPage = ele.find('.lastPage'),
                jumpBtn = ele.find('.jumpBtn'),
                jumpText =ele.find('.jumpText');
    // console.log(firstPage);
            prePage.on('click', function() {
                pageIndex--;
                	that.options.first=true;
                if (pageIndex < 1) pageIndex = 1;
                handles(pageIndex);
            })

            nextPage.on('click', function() {
                pageIndex++;
                	that.options.first=true;
                if (pageIndex > lis.length) pageIndex = lis.length;
                handles(pageIndex);
            })

            firstPage.on('click', function() {
                pageIndex = 1;
                	that.options.first=true;
                handles(pageIndex);
            })

            lastPage.on('click', function() {
                pageIndex = totalPages;
                	that.options.first=true;
                handles(pageIndex);
            })
           
          $(document).on("click", jumpBtn, function() {
           // jumpBtn.on('click', function() {
           
                var jumpNum = parseInt(jumpText.val().replace(/\D/g, ''));
                if (jumpNum && jumpNum >= 1 && jumpNum <= totalPages) {
                    pageIndex = jumpNum;
                    	that.options.first=true;
                    handles(pageIndex);
                    jumpText.val(jumpNum);
                }
            })
       //$(document).on("click", lis, function() {
            lis.on('click', function() {
              	that.options.first=true;
                pageIndex = $(this).index() + 1;
                 handles(pageIndex);
            })

            function handles(pageIndex) {
          //debugger;
                lis.removeClass('sel-page').eq(pageIndex - 1).addClass('sel-page');
                
               
                if(totalPages<=1){
              
                firstPage.attr('disabled', true);
                prePage.attr('disabled', true);
                nextPage.attr('disabled', true);
                lastPage.attr('disabled', true) ;
                jumpBtn.attr('disabled', true) ;
                jumpText.attr('disabled', true) ;
                    if(that.options.first){
                that.options.callback(pageIndex);
                }
                    return false;
                }
                
                
                if (totalPages <= 5) {
                    if(that.options.first){
                that.options.callback(pageIndex);
                }
                   // console.log("222totalPages",totalPages)
                    return false;
                }
                if (pageIndex >= 3 && pageIndex <= totalPages - 2) distance = (pageIndex - 3) * liWidth;
                if (pageIndex == 2 || pageIndex == 1) distance = 0;
                if (pageIndex > totalPages - 2) distance = (totalPages - 5) * liWidth;
                pageSelect.css('transform', 'translateX(' + (-distance) + 'px)');
                pageIndex == 1 ? firstPage.attr('disabled', true) : firstPage.attr('disabled', false);
                pageIndex == 1 ? prePage.attr('disabled', true) : prePage.attr('disabled', false);
                pageIndex == totalPages ? lastPage.attr('disabled', true) : lastPage.attr('disabled', false);
                pageIndex == totalPages ? nextPage.attr('disabled', true) : nextPage.attr('disabled', false);
                  
                 if(that.options.first){
                that.options.callback(pageIndex);
                }
            }
           //if(that.options.first){
            handles(that.options.pageNo); // 初始化页码位置
            //}
            
        }
    }
    $.fn.paging = function(options) {
    //	console.log($(this));
        return new Paging($(this), options);
    }
})(jQuery, window, document);
		
	</script>
     <script>
     	
     	//http://layer.layui.com/
		$(document).ready(function(){
           var tables=$("#tables");
           var page=1;
           //ajaxDATA(1)
             function ajaxDATA(page){
             var urls="http://mktm.biqiang8.com/home/goods?firstCid=0&secCid=0&pageNo="+page+"&pageSize=5&exsitIdList="

              $.ajax({
               type: "GET",
               url: urls,
                dataType: "json",
               
             success: function(data){
                       if(data.code==0){
                       	var htmlStr="";
                       	//console.log(data.goods_list);
                       	for(var i=0;i<data.data.goods_list.length;i++){
                       		htmlStr+='<li>'+i+data.data.goods_list[i].title+'<img src="'+data.data.goods_list[i].img_url+'"</li>'
                       	}
                      $("#tables").html(htmlStr);
                       }
                       
                  }
            });
             }
         
         
          var setTotalCount = 301;
         var fenyeObj={
            initPageNo: 1, // 初始页码
            totalPages: 1, //总页数
            totalCount: '合计' + 0 + '条数据', // 条目总数
            slideSpeed: 600, // 缓动速度。单位毫秒
            jump: true, //是否支持跳转
             first:false,  //初始化 是否立即执行回掉
            callback: function(page) { // 回调函数
                console.log("立11即查询",page);
                  ajaxDATA(page)
            }
        }
           
       
        $('#fenbox').paging(fenyeObj)
        
        $("#saa").on("click",function(){
               	setTotalCount = 71;
        	      fenyeObj.totalCount = '合计' + setTotalCount + '条数据', // 条目总数;
        	      fenyeObj.totalPages=24;
        	      fenyeObj.first=false;
        	      //console.log("立重置即查询",fenyeObj);
        	     $('#fenbox').paging(fenyeObj)
        })
        
        
        
        
        
          var setTotalCount2 = 31;
         var fenyeObj2={
            initPageNo: 1, // 初始页码
            totalPages: 20, //总页数
            totalCount: '合计' + setTotalCount2 + '条数据', // 条目总数
            slideSpeed: 600, // 缓动速度。单位毫秒
            jump: true, //是否支持跳转
            // first:false,
            callback: function(page) { // 回调函数
                console.log("立即22查询",page);
                  ajaxDATA(page)
            }
        }
           
       
        $('#fenbox2').paging(fenyeObj2)
        
             
 });
	</script>
	</body>
</html>

 

 

下拉框

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>信息查询</title>
        <meta name="viewport"   content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width"  />

    </head>
    <body>
        
        
        
<style>
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,span,img,button ,em,i,b{margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;min-width:320px;font-size:62.5%;}
body{font-family:"微软雅黑",'Helvetica Neue',Helvetica,tahoma,arial,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1;font-size:14px;-webkit-touch-callout:none;}
article,aside,dialog,figure,footer,header,hgroup,menu,nav,section{display:block}
dl,li,menu,ol,ul{list-style:none}
address,em,i,th{font-weight:400;font-style:normal}
a{color:#999;display:block;}
a:link,a:visited{color:#999;text-decoration:none;cursor:pointer}
a:hover{cursor:pointer}
a:active,a:focus{outline:0;}
img{width:100%;border:0;vertical-align:middle;-webkit-user-select:none;}
input,select{outline:0}
h1,h2,h3,h4,h5,h6{font-size:100%;font-variant:normal;font-weight:normal;}
button,input[type=button],input[type=tel],input[type=reset],input[type=submit]{line-height:normal!important;-webkit-appearance:none}
::-webkit-input-placeholder{color:#777;}
::input-placeholder{color:#777;}
input:focus::-webkit-input-placeholder{-webkit-transition:.2s;opacity:0;}
input:focus::input-placeholder{transition:.2s;opacity:0;}
.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden}
.fl{float:left}
.fr{float:right}
.fl,.fr{display:inline}
.disabled{pointer-events:none;}
.hover{ }
.hover:hover{ cursor: pointer;}        
    
/*    业务css*/
.my_form{ background: #fafafa;
    border: 1px solid #e0e0e0;
    margin-top: 20px; padding: 21px; m }

.my_form .my_form_content{ width: 100%; }
.form_content_submit{ margin: 20px auto; display: block; font-size: 16px; text-align: center;  width: 120px;; height: 44px; line-height: 44px;background: #157fcc; color: #fff; border: 0;;}




.my_form_table{ border: 1px solid #e0e0e0; }
    .flexbox{display:-webkit-box;
display:-moz-box;
display:box;
display:-webkit-flex;
display:-moz-flex;
display:-ms-flexbox;
display:flex;
display:table\9;
}
.flexbox .flex1{
-webkit-box-flex:1;
-moz-box-flex:1;
box-flex:1;
-webkit-flex:1;
-moz-flex:1;
-ms-flex:1;
flex:1;
display:table-cell\9;
}


.selected_icon{ position: relative; width: 100%; height: 100%;}
.selected_icon .check{ position:absolute;background: #157fcc;}
.selected_icon .check.plus{ left: 50%; top: 50%; margin-left: -8px; width: 16px; height: 1px; }
.selected_icon .check.reduce{left: 50%;top: 50%;; margin-top: -8px;; position:absolute;width: 1px; height: 16px; }
.showone.on .check{background: red !important;}
.showone.on .check.reduce{  -webkit-transform:translateY(50%);-moz-transform:translateY(50%);transform:translateY(50%); opacity: 0; -webkit-transition: .3s;-moz-transition: .3s;transition: .3s;;}
.showone{ position: relative;;border-bottom: 1px solid #e0e0e0 ;}
.hideone{ background: #fff; margin:20px 44px;;border: 1px solid #ccc ;}
.hideoneinner { position: relative;; height:44px; line-height: 44px; text-align: center; border-bottom: 1px solid #e0e0e0;}
.hideoneinner div { height:44px; line-height: 44px;border-right: 1px solid #e0e0e0; }
.showone.on:after{position: absolute;
    content: "";
    height: 1px; width: 22px;
    background:#e0e0e0;
    left: 22px; top: 65px;
    z-index: 26;}
 .showone.on:before{ position: absolute;
    content: "";
    height: 22px; width:1px;
    background:#e0e0e0;
    left: 22px; top: 44px;
    z-index: 26;}

.hideoneinner div:last-child{ border-right:0; }
.hideoneinner div:first-child{  font-weight: bold; }
.hideoneinner:last-of-type{  border-bottom: 0;}  
.my_form_table .showone:hover{ background:#f5f5f5 ;}


.filter-disabled {
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.filter-box {
    position: relative; z-index: 92;;
}

.filter-box select {
    display: none;
}

.filter-text {
    height: 100%;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    padding: 0 30px 0 10px;
    background: #fff;
    border: 1px solid #e6e6e6;
}

.filter-text input {
    font-size: 14px;
}

.filter-text .filter-title {
    width: 100%;
    height: 36px;
    line-height: 36px;
    border: 0;
    background-color: transparent;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0;
    cursor: pointer;
}

.filter-list {
    display: none;
    width: 100%; z-index: 99;
    max-height: 300px;
    background-color: #fff;
    font-size: 14px;
    position: absolute;
    top: 42px;
    left: 0;
    z-index: 99;
    border: 1px solid #e6e6e6;
    overflow: auto;
}

.filter-list li.filter-null a {
    color: #d2d2d2;
}

.filter-list li a {
    display: block;
    padding: 0 10px;
    line-height: 36px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

.filter-list li:hover {
    background-color: #f2f2f2;
}

.filter-list li.filter-selected {
    background-color: #5FB878;
}

.filter-list li.filter-selected a{
    display: block;
    color: #fff;
}

.filter-list li.filter-disabled {
    background-color: #fff;
}

.filter-list li.filter-disabled a{
    display: block;
    color: #d2d2d2;
}

.filter-list li.filter-disabled:hover a {
    cursor: not-allowed!important;
    background-color: #fff;
}

.icon {
    position: absolute;
}

.icon-filter-arrow {
     width:0;
    height:0;
    overflow:hidden;
    font-size: 0;     /*是因为, 虽然宽高度为0, 但在IE6下会具有默认的 */
    line-height: 0;  /* 字体大小和行高, 导致盒子呈现被撑开的长矩形 */
    border-width:8px;
    border-style:solid dashed dashed dashed;/*IE6下, 设置余下三条边的border-style为dashed,即可达到透明的效果*/
    border-color:#999 transparent transparent transparent;
    right: 10px;
    top: 13px;
    transition: all .2s;
}

.icon-filter-arrow.filter-show {
    -webkit-transform: rotate(-180deg);
    transform: rotate(-180deg);
}

.filter-list::-webkit-scrollbar {
    width: 4px;
    height: 4px;
}

.filter-list::-webkit-scrollbar-track {
    background: #fff 
}

.filter-list::-webkit-scrollbar-thumb {
    background: #CBCBCB;
}



#j_searchtask{  background: #666; padding: 10px 20px;}
</style>

        
            <div>  
    
                      <!-- 这里开始 -->
            
            <div class="filter-box filter-box1 fl">
                <div class="filter-text">
                    <input class="filter-title" id="j_qudao"  data-val="" type="text" readonly placeholder="请选择渠道" />
                    <i class="icon icon-filter-arrow"></i>
                </div>
                <select name="filter">
                    <option value="new"  disabled>请选择渠道</option>
                    <option value="11渠道1" >渠道1</option>
                    
                    <option value="22渠道2">渠道2</option>
                    <option value="33渠道3">渠道3</option>
                    
                </select>
            </div>
            
            <!-- 这里结束 -->
                      <!-- 这里开始 -->
            
            <div class="filter-box  filter-box2 fl">
                <div class="filter-text">
                    <input class="filter-title" id="j_qudao2"  data-val="" type="text" readonly placeholder="请选择支付" />
                    <i class="icon icon-filter-arrow"></i>
                </div>
                <select name="filter">
                    <option value="new"  disabled>请选类型</option>
                    <option value="淘宝1" >淘宝</option>
                    
                    <option value="支付宝2">支付宝</option>
                    
                </select>
            </div>
            
            <!-- 这里结束 -->
                      
                      
                      
                   <div class="right fr" class="flex1" id="j_searchtask">查询结果</div>     
                   

        </div>  

    <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js">    </script>
    
    <script type="text/javascript" >
        
        ;jQuery.fn.selectFilter = function(options) {
    var defaults = {
        callBack: function(res) {}
    };
    var ops = $.extend({}, defaults, options);
    var selectList = $(this).find('select option');
    var that = this;
    var html = '';
    html += '<ul class="filter-list">';
    $(selectList).each(function(idx, item) {
        var val = $(item).val();
        var valText = $(item).html();
        var selected = $(item).attr('selected');
        var disabled = $(item).attr('disabled');
        var isSelected = selected ? 'filter-selected' : '';
        var isDisabled = disabled ? 'filter-disabled' : '';
        if (selected) {
            html += '<li class="' + isSelected + '" data-value="' + val + '"><a title="' + valText + '">' + valText + '</a></li>';
            $(that).find('.filter-title').val(valText);
        } else if (disabled) {
            html += '<li class="' + isDisabled + '" data-value="' + val + '"><a>' + valText + '</a></li>';
        } else {
            html += '<li data-value="' + val + '"><a title="' + valText + '">' + valText + '</a></li>';
        }
        ;
    });
    html += '</ul>';
    $(that).append(html);
    $(that).find('select').hide();
    $(that).on('click', '.filter-text', function() {
        $(that).find('.filter-list').slideToggle(100);
        $(that).find('.filter-list').toggleClass('filter-open');
        $(that).find('.icon-filter-arrow').toggleClass('filter-show');
    });
    $(that).find('.filter-list li').not('.filter-disabled').on('click', function() {
        var val = $(this).data('value');
        var valText = $(this).find('a').html();
        $(that).find('.filter-title').val(valText);
        $(that).find('.icon-filter-arrow').toggleClass('filter-show');
        $(this).addClass('filter-selected').siblings().removeClass('filter-selected');
        $(this).parent().slideToggle(50);
        for (var i = 0; i < selectList.length; i++) {
            var selectVal = selectList.eq(i).val();
            if (val == selectVal) {
                $(that).find('select').val(val);
            }
            ;
        }
        ;ops.callBack(val);
    });
    $(document).on('mousedown', function(e) {
        closeSelect(that, e);
    });
    $(document).on('touchstart', function(e) {
        closeSelect(that, e);
    });
    function closeSelect(that, e) {
        var filter = $(that).find('.filter-list')
          , filterEl = $(that).find('.filter-list')[0];
        var filterBoxEl = $(that)[0];
        var target = e.target;
        if (filterEl !== target && !$.contains(filterEl, target) && !$.contains(filterBoxEl, target)) {
            filter.slideUp(50);
            $(that).find('.filter-list').removeClass('filter-open');
            $(that).find('.icon-filter-arrow').removeClass('filter-show');
        }
        ;
    }
}
;

        
    </script>
        <script type="text/javascript">
            //本小插件支持移动端哦
            
            
        </script>

     <script>
        $(document).ready(function(){
                  
               //下拉组件
            $('.filter-box1').selectFilter({
                callBack : function (val){
                    //返回选择的值
                    //document.getElementById("j_qudao").setAttribute("data-val",val)
                    console.log(val+'-是返回的值')
                }
            });
                   //下拉组件
            $('.filter-box2').selectFilter({
                callBack : function (val){
                    //返回选择的值
                    //document.getElementById("j_qudao").setAttribute("data-val",val)
                    console.log(val+'-是返回的值')
                }
            });  
                  
                  
                      
                      //查询点击
                      $("#j_searchtask").on("click",function(){
                          var qudao_val=$("#j_qudao").attr("data-val");//渠道
                            var qudao_val2=$("#j_qudao2").attr("data-val");//渠道
                                 alert("值-----:"+qudao_val);
                                      alert("值-----:"+qudao_val2);
                            
                          });
                             
                           
                          
                   
 });
    </script>
  
    </body>
</html>

 

水波纹

!function(t, e) {
    "use strict";
    if (void 0 === n || !n)
        var n = function(t) {
            var e = {
                opacity: .5,
                speed: .6,
                bgColor: "#ffffff",
                cursor: !0
            };
            this.option = this.extend(t, e),
            this.isltIE9() || this.init()
        };
    n.prototype = {
        createEle: function(t) {
            return e.createElement(t)
        },
        extend: function(t, e) {
            var n = JSON.parse(JSON.stringify(e));
            for (var i in t)
                n[i] = t[i];
            return n
        },
        isltIE9: function() {
            return !!/MSIE6.0|MSIE7.0|MSIE8.0|MSIE9.0/i.test(navigator.userAgent.split(";")[1].replace(/[ ]/g, ""))
        },
        getPosition: function(t) {
            var e = this.getBoundingClientRect()
              , n = Math.max(e.width, e.height);
            return {
                range: n,
                x: t.clientX - e.left - n / 2,
                y: t.clientY - e.top - n / 2
            }
        },
        loadCss: function() {
            var t = e.scripts
              , n = t[t.length - 1].src
              , i = n.substring(0, n.lastIndexOf("/") + 1);
            e.head.appendChild(function() {
                var t = e.createElement("link");
                return t.href = i + "need/ripple.css",
                t.type = "text/css",
                t.rel = "styleSheet",
                t.id = "ripplecss",
                t
            }())
        },
        addEvent: function() {
            for (var t = this, n = 0; n < this.elements.length; n++)
                "boolean" == typeof t.option.cursor && t.option.cursor && (this.elements[n].style.cursor = "pointer"),
                this.elements[n].addEventListener("mousedown", function(n) {
                    n.stopPropagation();
                    var i = t.getPosition.call(this, n)
                      , o = e.createElement("span");
                    o.className = "ripple",
                    o.style.top = i.y + "px",
                    o.style.left = i.x + "px",
                    o.style.width = i.range + "px",
                    o.style.height = i.range + "px",
                    o.style.animationDuration = t.option.speed + "s",
                    o.style.background = t.option.bgColor,
                    o.style.opacity = t.option.opacity,
                    o.addEventListener("animationend", function() {
                        this.parentNode.removeChild(this)
                    }, !1),
                    this.appendChild(o)
                }, !1)
        }
    },
    n.prototype.init = function() {
        this.loadCss();
        var n = this;
        t.onload = function() {
            n.elements = e.querySelectorAll('[data-ripple="ripple"]'),
            n.addEvent()
        }
    }
    ,
    t.Ripple = n
}(window, document);

css

[data-ripple=ripple] {
    position: relative;
    overflow: hidden;
    -webkit-user-select: none;
    -moz-webkit-user-select: none;
    -ms-user-select: none
}

[data-ripple=ripple] .ripple {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 888;
    background: rgba(255,255,255,.5);
    transform: scale(0);
    animation: ripple .6s 0s linear
}

@keyframes ripple {
    100% {
        opacity: 0;
        transform: scale(2.5)
    }
}

效果

<!DOCTYPE html>
<html lang="en">
<head>
<title>Demo</title>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<style type="text/css">
    *{
        margin:0;
        padding: 0;
    }
    div,a,button,h1{
        background: blue;
        height: 50px;
        line-height: 50px;
        color: #fff;
        text-align: center;
        width: 200px;
        margin: 5px;
        border-radius: 5px;
        font-size:14px ;
        font-family: "微软雅黑","Arial Narrow"
    }
    a{
        display: block;
    }
</style>
</head>
<body>
<div data-ripple="ripple">
div标签
</div>
<a data-ripple="ripple">
a标签
</a>
<button data-ripple="ripple">
button标签
</button>
<h1 data-ripple="ripple">
h1标签
</h1>
</body>
</html>
<script src="ripple.min.js" charset="UTF-8"></script>
<script type="text/javascript">
    new Ripple({
        opacity : 0.6,  //水波纹透明度
        speed : 1,      //水波纹扩散速度
        bgColor : "#fff", //水波纹颜色
        cursor : true  //是否显示手型指针
    })
</script>

 

摇一摇 函数

/*
 * Author: Alex Gibson
 * https://github.com/alexgibson/shake.js
 * License: MIT license
 */

(function(global, factory) {
    if (typeof define === 'function' && define.amd) {
        define(function() {
            return factory(global, global.document);
        });
    } else if (typeof module !== 'undefined' && module.exports) {
        module.exports = factory(global, global.document);
    } else {
        global.Shake = factory(global, global.document);
    }
} (typeof window !== 'undefined' ? window : this, function (window, document) {

    'use strict';

    function Shake(options) {
        //feature detect
        this.hasDeviceMotion = 'ondevicemotion' in window;

        this.options = {
            threshold: 15, //default velocity threshold for shake to register
            timeout: 1000 //default interval between events
        };

        if (typeof options === 'object') {
            for (var i in options) {
                if (options.hasOwnProperty(i)) {
                    this.options[i] = options[i];
                }
            }
        }

        //use date to prevent multiple shakes firing
        this.lastTime = new Date();

        //accelerometer values
        this.lastX = null;
        this.lastY = null;
        this.lastZ = null;

        //create custom event
        if (typeof document.CustomEvent === 'function') {
            this.event = new document.CustomEvent('shake', {
                bubbles: true,
                cancelable: true
            });
        } else if (typeof document.createEvent === 'function') {
            this.event = document.createEvent('Event');
            this.event.initEvent('shake', true, true);
        } else {
            return false;
        }
    }

    //reset timer values
    Shake.prototype.reset = function () {
        this.lastTime = new Date();
        this.lastX = null;
        this.lastY = null;
        this.lastZ = null;
    };

    //start listening for devicemotion
    Shake.prototype.start = function () {
        this.reset();
        if (this.hasDeviceMotion) {
            window.addEventListener('devicemotion', this, false);
        }
    };

    //stop listening for devicemotion
    Shake.prototype.stop = function () {
        if (this.hasDeviceMotion) {
            window.removeEventListener('devicemotion', this, false);
        }
        this.reset();
    };

    //calculates if shake did occur
    Shake.prototype.devicemotion = function (e) {
        var current = e.accelerationIncludingGravity;
        var currentTime;
        var timeDifference;
        var deltaX = 0;
        var deltaY = 0;
        var deltaZ = 0;

        if ((this.lastX === null) && (this.lastY === null) && (this.lastZ === null)) {
            this.lastX = current.x;
            this.lastY = current.y;
            this.lastZ = current.z;
            return;
        }

        deltaX = Math.abs(this.lastX - current.x);
        deltaY = Math.abs(this.lastY - current.y);
        deltaZ = Math.abs(this.lastZ - current.z);

        if (((deltaX > this.options.threshold) && (deltaY > this.options.threshold)) || ((deltaX > this.options.threshold) && (deltaZ > this.options.threshold)) || ((deltaY > this.options.threshold) && (deltaZ > this.options.threshold))) {
            //calculate time in milliseconds since last shake registered
            currentTime = new Date();
            timeDifference = currentTime.getTime() - this.lastTime.getTime();

            if (timeDifference > this.options.timeout) {
                window.dispatchEvent(this.event);
                this.lastTime = new Date();
            }
        }

        this.lastX = current.x;
        this.lastY = current.y;
        this.lastZ = current.z;

    };

    //event handler
    Shake.prototype.handleEvent = function (e) {
        if (typeof (this[e.type]) === 'function') {
            return this[e.type](e);
        }
    };

    return Shake;
}));

 

 

其他

 360  科学技术

<!doctype html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<title>主页</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<link rel="stylesheet" href="css/tabris.css">
<link rel="stylesheet" href="css/lib.css">
</head>
<body>
<div class="bg0 pa">
<div class="bg1"></div>
</div>
<div class="hx-box pa">
<ul class="pr">
<li class="hx-k1 pa0">
<span></span>
</li>
<li class="hx-k2 pa0">
<span></span>
</li>
<li class="hx-k3 pa0">
<span></span>
</li>
</ul>
</div>
</body>
</html>
@charset 'utf-8';article,aside,details,figcaption,figure,footer,header,hgroup,hr,main,menu,nav,section,summary {
    display: block
}

hr,img {
    border: 0
}

pre,textarea {
    overflow: auto
}

hr,legend,td,th {
    padding: 0
}

html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    color: #333;
    font-size: 1em;
    line-height: 1.42857143;
    font-family: Helvetica,hiragino sans gb,microsoft yahei,微软雅黑,Arial,sans-serif
}

body,form,h1,h2,h3,h4,h5,h6,ol,p,ul {
    margin: 0
}

ol,ul {
    padding-left: 0;
    list-style-type: none
}

h1,h2,h3,h4,h5,h6 {
    font-size: 1em;
    font-weight: 400
}

a {
    text-decoration: none;
    background-color: transparent;
    color: inherit
}

a:active,a:hover {
    outline: 0
}

li {
    list-style: none
}

audio,canvas,progress,video {
    display: inline-block;
    vertical-align: baseline
}

.vm,audio,canvas,iframe,img,svg,video {
    vertical-align: middle
}

audio:not([controls]) {
    display: none;
    height: 0
}

[hidden],template {
    display: none
}

abbr[title] {
    border-bottom: 1px dotted
}

b,optgroup,strong {
    font-weight: 700
}

dfn {
    font-style: italic
}

mark {
    background: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sup {
    top: -.5em
}

sub {
    bottom: -.25em
}

svg:not(:root) {
    overflow: hidden
}

figure {
    margin: 1em 40px
}

hr {
    height: 1px;
    border-top: 1px solid #ccc;
    margin: 1em 0
}

code,kbd,pre,samp {
    font-family: monospace,monospace;
    font-size: 1em
}

button,input,optgroup,select,textarea {
    color: inherit;
    font: inherit;
    margin: 0
}

button {
    overflow: visible
}

button,select {
    text-transform: none
}

button,html input[type=button],input[type=reset],input[type=submit] {
    -webkit-appearance: button;
    cursor: pointer
}

button[disabled],html input[disabled] {
    cursor: default
}

button::-moz-focus-inner,input::-moz-focus-inner {
    border: 0;
    padding: 0
}

input {
    line-height: normal
}

input[type=checkbox],input[type=radio] {
    box-sizing: border-box;
    padding: 0
}

input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button {
    height: auto
}

input[type=search] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}

legend {
    border: 0
}

textarea {
    resize: vertical
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none
}

::selection {
    background: #b3d4fc;
    text-shadow: none
}

.browserupgrade {
    margin: .2em 0;
    background: #ccc;
    color: #000;
    padding: .2em 0
}

.dv {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px
}

.dv.dvv:active,.dv.dvv:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto
}

.dn {
    display: none
}

.db {
    display: block
}

.fix:after,.fix:before {
    content: " ";
    display: table
}

.fix:after {
    clear: both
}

.fl {
    float: left
}

.fr {
    float: right
}

.pr {
    position: relative
}

.pa,.pa0 {
    position: absolute
}

.pa0 {
    left: 0;
    top: 0
}

.oh {
    overflow: hidden
}

.wh {
    width: 100%;
    height: 100%
}

.bo {
    border: 1px solid red
}

.mg {
    margin-left: auto;
    margin-right: auto
}

.tc {
    text-align: center
}

.wp {
    margin: 0 auto
}

*,:after,:before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}

@charset 'utf-8';html {
    width: 100%;
    height: 100%
}

body {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-image: -webkit-linear-gradient(90deg,#395ecb 0%,#3657be 35%,#242161 75%,#1a0531 100%);
    background-image: -moz-linear-gradient(90deg,#395ecb 0%,#3657be 35%,#242161 75%,#1a0531 100%);
    background-image: -ms-linear-gradient(90deg,#395ecb 0%,#3657be 35%,#242161 75%,#1a0531 100%);
    background-image: linear-gradient(0deg,#395ecb 0%,#3657be 35%,#242161 75%,#1a0531 100%);
    perspective: 1e3px
}

.bg0 {
    width: 500px;
    height: 500px;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    background: url(../images/bg0.png) no-repeat center center;
    background-size: 150%
}

.bg1 {
    width: 100%;
    height: 100%;
    background: url(../images/bg1.png) no-repeat center center
}

.hx-box {
    top: 50%;
    left: 50%;
    width: 500px;
    height: 500px;
    transform-style: preserve-3d;
    transform: translate(-50%,-50%) rotateY(75deg)
}

.hx-box ul {
    width: 500px;
    height: 500px;
    transform-style: preserve-3d;
    animation: hxz 20s linear infinite
}

@keyframes hxz {
    0% {
        transform: rotateX(0deg)
    }

    100% {
        transform: rotateX(-360deg)
    }
}

.hx-box ul li {
    width: 500px;
    height: 500px;
    border: 4px solid #5ec0ff;
    border-radius: 1e3px
}

.hx-box ul li span {
    display: block;
    width: 100%;
    height: 100%;
    background: url(../images/hx.png) no-repeat center center;
    background-size: 100% 100%;
    animation: hx 4s linear infinite
}

@keyframes hx {
    to {
        transform: rotate(360deg)
    }
}

.hx-k2 {
    transform: rotateX(60deg) rotateZ(60deg)
}

.hx-k3 {
    transform: rotateX(-60deg) rotateZ(-60deg)
}

 

无缝轮播

 

//兼容各种浏览器

  $(function(){

     var w=630;

      var l=0;

      var timer=null;

      var len=$("ul li").length*2; //复制了一份图片,长度变了。

      //复制一份图片,是为了解决第一张图片切换到最后一张或 最后一张切换到第一张时,图片区域会出现空白,用户体验不友好。

      // 页面一加载,就把ul定位到追加图片的第一张(本身图片在前,追加图片在后。)

      //当图片位置到第一份图片第二张时,马上把图片定位到第二份的第一张,图片位置到最后一张时(第二份最后一张)时,就把图片定位到第一份最后一张,

      //这样图片后面或前面还有一张图片,切换时不会留下空白。(关键之处)

    //加载后图片排列像这样:1  2  3  4  5  1  2  3  4  5 

     $("ul").append($("ul").html()).css({'width':len*w, 'left': -len*w/2});

     

    //自动每8秒切换一次 

    timer=setInterval(init,8000);    

    function init(){

         $(".scroll .next").trigger('click'); //当页面一加载就触发next按钮的点击事件,用trigger的好处是减少重复代码,如果不用,就要把按钮click事件里代码全部复制过来,因为加载的代码和点击next按钮代码和效果相同,所以就用trigger触发执行click里面代码。

    }

    

    $("ul li").hover(function(){

         clearInterval(timer);

        },function(){

            timer=setInterval(init,8000);

       });

    

      $(".prev").click(function(){

          l=parseInt($("ul").css("left"))+w;  //这里要转成整数,因为后面带了px单位

             showCurrent(l); 

          });

          $(".next").click(function(){

             l=parseInt($("ul").css("left"))-w;  //这里要转成整数,因为后面带了px单位

            showCurrent(l);

      });

       function showCurrent(l){     //把图片的左右切换封装成一个函数

       if($("ul").is(':animated')){ //当ul正在执行动画的过程中,阻止执行其它动作。关键之处,不然图片切换显示不完全,到最后图片空白不显示。

          return;

       }

          $("ul").animate({"left":l},500,function(){

                if(l==0){ //当图片位置到第一份图片第二张时,马上把图片定位到第二份的第一张。注意这里的设置的css一定到写在animate动画完成时的执行  //函数里。否则图片只是一瞬间回到第一张,但是没有向右的动画效果。 我在做的时候,用的不是css,而是用animate()定位到第二个第一张,结果切换时,是反方向的运动,一直觉得无论怎样,图片方向都会发生变化 ,弄得花了一天时间才找到原因,所以一定 要用css。

               $("ul").css("left",-len*w/2);   

               

             }else if(l==(1-len)*w){ //图片位置到最后一张时(第二份最后一张)时,就把图片定位到第一份最后一张。从而显示的是第一份最后一张。

                 $("ul").css('left',(1-len/2)*w); 

                }

            });       

         }

      

      });    

  

无缝文字上下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>实现无缝上下滚动</title>
<link href="css/usually.css" type="text/css"  rel="stylesheet"  />
<script src="js/jquery-1.10.2.min.js"></script>
</head>

<body>
<p class="back"><a href="index.html">返回首页>></a></p>

<style>
.list_top{width:280px; height:100px; overflow:hidden; border:1px solid #ddd; padding:10px;}
.list_ul li{height:30px; line-height:30px;}
</style>
<div class="list_top">
    <ul class="clearfix list_ul">
        <li>111</li>
        <li>222</li>
        <li>333</li>
    </ul>
</div>
<script>
 (function($){
        $.fn.extend({
            slideFn:function(options){
                var defaults = {
                    isTop:true,//是否
                    slideTimer:"1000"
                };
                var options = $.extend(defaults,options);
                this.each(function(){
                    var o = options;
                    var obj = $(this);
                    var oUl = obj.find("ul:first");
                    var oLi = $("li",oUl);

                    var Timer;
                    obj.hover(function(){
                        clearInterval(Timer);
                    },function(){
                        Timer = setInterval(function(){
                            if(o.isTop==true){
                                slideTop(oUl);
                            }else{
                                slideLeft(oUl);
                            }
                        }, o.slideTimer )
                    }).trigger("mouseleave");

                    var slideTop = function(box){
                        var oLiHeight = box.find("li:first").height();
                        box.animate({"marginTop":-oLiHeight+"px"},800,function(){
                            box.css("marginTop",0).find("li:first").appendTo(box);
                        })
                    };//上滚
                    var slideLeft = function(box2){
                        box2.css("width",((oLi.width())*(oLi.length))+"px");
                        var oLiWidth = box2.find("li:first").width();
                        box2.animate({"marginLeft":-oLiWidth+"px"},800,function(){
                            box2.css("marginLeft",0).find("li:first").appendTo(box2);
                        })
                    };//左滚
                })
            }

        })
    })(jQuery);
	//实现无缝上下滚动 无缝左右滚动--------------------------------------------------------------

 $(".list_top").slideFn();
</script>


	
</body>
</html>

  

posted @ 2018-06-11 18:04  surfaces  阅读(505)  评论(0编辑  收藏  举报