zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    nessus 安装
    firefox SSL_ERROR_RX_RECORD_TOO_LONG burpsuit 报错 解决方案
    Vmware 15 新建虚拟机黑屏
    esp8266 IOT Demo 固件刷写记录
    elk + suricata 实验环境详细安装教程
    停更申明
    求二叉树的深度
    方差
    链表的基本排序
    正态分布及3Sigma原理
  • 原文地址:https://www.cnblogs.com/jkingdom/p/9275004.html
Copyright © 2011-2022 走看看