• jQuery内容横向拖拽滚动


    如果有业务需求:使用横向滚动,而又不想用滚动条,可以使用横向拖拽滚动,主要是利用元素的scrollLeft特性;

    废话不多说直接上代码;

    css:

    .box{
            100%;
            height:30px;
            line-height:30px;
            overflow:hidden;
        }
        .box-container{
            cursor: move;
            white-space:nowrap;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }
        .box-container a.mumber {
            text-decoration:none;
            color:#333;
            padding:0 0 0 20px;
        }
    

    html结构:

    <div class="box">
        <div class="box-container">
            <a  class="mumber">person1</a>
            <a class="mumber">person2</a>
            <a class="mumber">person3</a>
            <a class="mumber">person5</a>
            <a class="mumber">person6</a>
            <a class="mumber">person7</a>
            <a class="mumber">person8</a>
            <a class="mumber">person9</a>
            <a class="mumber">person10</a>
            <a class="mumber">person11</a>
            <a class="mumber">person12</a>
            <a class="mumber">person13</a>
            <a class="mumber">person14</a>
            <a class="mumber">person15</a>
            <a class="mumber">person16</a>
            <a class="mumber">person17</a>
            <a class="mumber">person18</a>
            <a class="mumber">person19</a>
            <a class="mumber">person20</a>
            <a class="mumber">person21</a>
            <a class="mumber">person22</a>
        </div>
    </div>  

    jquery代码  

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script>
        $(function(){
            var boxContainer = $('.box .box-container'),
                box = $('.box'),
                boxWidth = box.width(),
                mumber = boxContainer.find('a.mumber'),
                mumberWidth = mumber.width()+20,
                length = mumber.length,
                boxContainerWidth = mumberWidth*length;
            boxContainer.css('width',boxContainerWidth);
            //当外容器宽度大于内部容器宽度,直接返回
            if(parseInt(boxWidth)>=parseInt(boxContainerWidth))return false;
            boxContainer.on('mousedown',function(e){
                var posX = e.screenX;//鼠标点击时候的位置
                $(document).on('mousemove',function(e){
                    var posL = e.clientX,//滚动后鼠标的位置
                        moveX = posL -posX,//鼠标拖动距离
                        currentScroll = box.scrollLeft();//当前的scrollLeft值
                    currentScroll += moveX;
                    box.scrollLeft( currentScroll)
                })
                //清空事件
                $(document).on('mouseup',function(){
                    $(this).unbind();
                })
            })
        })
    
    </script>
    

      

  • 相关阅读:
    Server2012R2 ADFS3.0 The same client browser session has made '6' requests in the last '13'seconds
    pig的grunt中shell命令不稳定,能不用尽量不用
    pig脚本的参数传入,多个参数传入
    pig的cogroup详解
    pig的limit无效(返回所有记录)sample有效
    Dynamics CRM2013 任务列表添加自定义按钮
    简述浏览器渲染机制
    如何区分浏览器类型
    使用mock.js生成前端测试数据
    理解Ajax
  • 原文地址:https://www.cnblogs.com/jkingdom/p/9275004.html
Copyright © 2020-2023  润新知