响应式页面鼠标按住上下滑动和触屏滑动功能

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0"/>
    <title>2014-4-29</title>
    <style>
        * {margin: 0;  padding: 0;}
        #outer{ width:60%; height: 500px; background: #000; margin: auto;  overflow: hidden; background: url("../img/background.jpg")}
        #inner{width:60%; height: 2000px;  margin: auto; position:relative; }
    </style>
    <script src='https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js'></script>
</head>
<body>

<div id="spText"></div>
<div id="outer">
    <div id="inner" style="top: 0" onmousedown="downDiv(this)" onmousemove="moveDiv(this)" onmouseout="outDiv(this)" onmouseup="upDiv(this)">
        123<br>        123<br>    gag<br> af<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> yryyr<br> ryry<br> 123<br> 123<br> 123<br> 123<br> 123<br> sdff<br> fef<br> 123<br> hr<br> hrh<br> 5y<br> 123<br> er<br> ert<br> 123<br> rgdgdg<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> gfgfgfgfgfgf<br> sdsdsdsdsdsd<br> sf<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> gdggdgdg<br> 123<br> drgdrgd<br> 123<br> 123<br> 123<br> yuyuyuyuyuy<br> hjkhjkhkhkhjkhkh<br> kjkjk<br>123<br>      123<br>    gag<br> af<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> yryyr<br> ryry<br> 123<br> 123<br> 123<br> 123<br> 123<br> sdff<br> fef<br> 123<br> hr<br> hrh<br> 5y<br> 123<br> er<br> ert<br> 123<br> rgdgdg<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> gfgfgfgfgfgf<br> sdsdsdsdsdsd<br> sf<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> 123<br> gdggdgdg<br> 123<br> drgdrgd<br> 123<br> 123<br> 123<br> yuyuyuyuyuy<br> hjkhjkhkhkhjkhkh<br> kjkjk<br>
    </div>
</div>

<script>
    var startX,//触摸时的坐标
        startY,
        x, //滑动的距离
        y=0,
        aboveY=0; //设一个全局变量记录上一次内部块滑动的位置
    var obj_w, obj_h;
    var all;
    var inner=document.getElementById("inner");

    function touchSatrt(e){//触摸
        obj_w = e.offsetWidth;
        obj_h = e.offsetHeight;
        e.preventDefault();
        var touch=e.touches[0];
        startY = touch.pageY;   //刚触摸时的坐标
    }

    function touchMove(e){//滑动
        e.preventDefault();
        var  touch = e.touches[0];
        y = touch.pageY - startY;//滑动的距离
        //inner.style.webkitTransform = 'translate(' + 0+ 'px, ' + y + 'px)';  //也可以用css3的方式
         all = aboveY+ y
        if((all)>-2000 && (all)<0){
            // console.log(all)
            inner.style.top=aboveY+y+"px";
            //这一句中的aboveY是inner上次滑动后的位置
        }else{
            console.log('划不动拉')
        }
    }

    function touchEnd(e){//手指离开屏幕
        e.preventDefault();
        aboveY=parseInt(inner.style.top);//touch结束后记录内部滑块滑动的位置 在全局变量中体现 一定要用parseInt()将其转化为整数字;

    }//

    var mouseDown = false;
    //鼠标按下函数
    function downDiv(obj) {
        obj_w = obj.offsetWidth;
        obj_h = obj.offsetHeight;
        console.log(obj_w,obj_h)
        //e.clientX/Y 是获取鼠标相对浏览器的位置;将div中心自动居中到鼠标
        var touch=window.event;;
        startY = touch.pageY;
        obj.style.top = startY;
        // obj.style.top = e.clientY;
        //按下时为ture,松开时为false,以判断是否执行执行mouveDiv
        mouseDown = true;
        // console.log(all)
    }

    //鼠标移动函数
    function moveDiv(obj) {
        var touch=window.event;;
        y = touch.pageY - startY;//滑动的距离
        if (mouseDown) {
            all = aboveY+ y
            // console.log(all)
            if(all>-2100&&all <=0){
                obj.style.top =all+"px";
            }else{
                console.log('划不动拉')
            }
        }

    }

    //鼠标松开函数
    function upDiv(obj) {
        mouseDown = false;
        aboveY=parseInt(obj.style.top);
    }
    //鼠标跑出div
    function outDiv(obj) {
        mouseDown = false;
        aboveY=parseInt(obj.style.top);
    }

    document.getElementById("outer").addEventListener('touchstart', touchSatrt,false);
    document.getElementById("outer").addEventListener('touchmove', touchMove,false);
    document.getElementById("outer").addEventListener('touchend', touchEnd,false);
</script>
</body>

</html>

直接可以运行,上下用Y轴,左右改成X轴就好了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值