zoukankan      html  css  js  c++  java
  • html5 touch事件实现触屏页面上下滑动(一)

    最近做的做那个app的项目由于用overflow:hidden导致了很多问题,于是决定研究下html5的touch事件。想找个全面点的帖子真是难死了,虽然好多关于html5 touch的文章但大多都是介绍touch事件或者很简短的小demo。

    下午好生研究了下终于搞出了个比较全面的上下滑动的小demo,代码比较简单。

    下面是完整代码,我把几个重要的地方做了红色标记

    <!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{ 90%; height: 490px; background: #000; margin: auto;  overflow: hidden;}
        #inner{80%; height: 2000px; background: #f67d42; margin: auto; position:relative; top:0;  }
        </style>
        <script src='jquery-1.9.1.min.js'></script>
    </head>
    <body>
    
    <div id="spText"></div>
        <div id="outer">
            <div id="inner">
            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,
                 aboveY=0; //设一个全局变量记录上一次内部块滑动的位置 
    
             var inner=document.getElementById("inner");
             
                function touchSatrt(e){//触摸
                    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的方式     
                    inner.style.top=aboveY+y+"px"; //这一句中的aboveY是inner上次滑动后的位置                   
                }  
    
                function touchEnd(e){//手指离开屏幕
                  e.preventDefault();                   
                  aboveY=parseInt(inner.style.top);//touch结束后记录内部滑块滑动的位置 在全局变量中体现 一定要用parseInt()将其转化为整数字;
    
                }//
                 document.getElementById("outer").addEventListener('touchstart', touchSatrt,false);  
                 document.getElementById("outer").addEventListener('touchmove', touchMove,false);  
                 document.getElementById("outer").addEventListener('touchend', touchEnd,false);  
        </script>
    </body>
    
    </html>

  • 相关阅读:
    11月2号
    2020.9.22 (Java测试)
    2020.8.30 + 每周周报(8)
    2020.8.31
    2020.8.29
    2020.9.23
    伪分布式hbase从0.94.11版本升级stable的1.4.9版本
    python 将列表(也可以是file.readlines())输出多个文件
    hbase0.94.11版本和hbase1.4.9版本的benchamark区别
    idea 配置
  • 原文地址:https://www.cnblogs.com/leinov/p/3701951.html
Copyright © 2011-2022 走看看