zoukankan      html  css  js  c++  java
  • 移动端范围拖动选择效果

    先看效果:

    在index.html头部先加上

    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport">
        <meta content="yes" name="apple-mobile-web-app-capable">
        <meta content="black" name="apple-mobile-web-app-status-bar-style">
        <meta content="telephone=no" name="format-detection">
        <meta content="false" id="twcClient" name="twcClient">

    页面样式

    #box{position:relative;height:64px;border:1px dashed #000}
           #bar{position:relative;left:4%;top:16px;width: 90%;height: 10px;border:1px solid #666;border-radius: 5px;background: #fff}
           #drag-sec{position:absolute;top:-10px; left:2px; width: 16px;height: 30px;border:1px solid #333;background: rgba(0,0,0,.3);border-radius:8px}
           #min{position: absolute;left: 30px;top: 40px;}
           #max{position: absolute;right: 30px;top: 40px;}
           #current{position: absolute;left: 49%;top: 40px;}

    引用的js是

    <script src="js/zepto.min.js" type="text/javascript"></script>
    <script src="js/touch-drag.js" type="text/javascript"></script>

    zepto可以自行下载

    touch-drag.js代码如下

    $(document).ready(function(){
        var maxW = $('#bar').width() - $('#drag-sec').width();
        var beginX, beginY;
        var drag_sec = $('#drag-sec');
        drag_sec.bind('touchstart', function(e) {
            console.log(e.type);
            var evtTouch = e.touches[0];
            var x = evtTouch.clientX - beginX;
            if (x > 0 && x < maxW) drag_sec.css('left', x+'px');
            beginX = beginX || evtTouch.clientX;
        });
    
        drag_sec.bind('touchmove', function(e) {
            console.log(e.type);
            var evtTouch = e.touches[0];
            if(e.touches[1]) return false;
            var x = evtTouch.clientX - beginX;
            if (x > 0 && x < maxW) {
                drag_sec.css('left', x+'px');
                $('#current').text(Math.floor((500+3)/maxW*x));
            }
            e.stopPropagation();
            return false;
        });
    
        drag_sec.bind('touchend', function(e) {
            console.log(e.type);
        });
    
        $('#bar').bind('touchstart', function(e) {
            console.log(e.type);
            var evtTouch = e.touches[0];
            var x = evtTouch.clientX - beginX;
            console.log(evtTouch.clientX);
            if (x > 0 && x < maxW) {
                drag_sec.css('left', x+'px');
                $('#current').text(Math.floor((500+3)/maxW*x));
            }
            beginX = beginX || evtTouch.clientX;
            e.stopPropagation();
            return false;
        });
    }) 
  • 相关阅读:
    SQL Server 中关于EXCEPT和INTERSECT的用法
    SQL SERVER 索引中聚集索引分析和Transact-SQL语句优化
    DATEDIFF() 返回2个日期之间的间隔
    CharIndex()
    poj1470 Closest Common Ancestors [ 离线LCA tarjan ]
    2014 蓝桥杯 预赛 c/c++ 本科B组 第九题:地宫取宝(12') [ dp ]
    hdu 2438 Turn the corner [ 三分 ]
    poj 3295 Tautology [ 栈 ]
    hdu 4923 Room and Moor [ 找规律 + 单调栈 ]
    1597: [Usaco2008 Mar]土地购买 [ dp+斜率优化 ] 未完
  • 原文地址:https://www.cnblogs.com/zhoulingfeng/p/3432758.html
Copyright © 2011-2022 走看看