html5 touch事件如何实现触屏页面上下滑动(一)

再看那柔弱的柳树吧,在寒冬余威尚盛时节,就早早苏醒过来,望着冰冻的河面,迎着凛冽的寒风,它微微察觉出一丝春意,于是,不顾一切地率先吐翠,淡淡地披起娇黄嫩绿的新装。沿河望去,枝梢间烟纱雾彀,一片生机,这情景仿佛一首动人的歌,一首热烈向往春天的歌,一首报告春的信息的歌,一首表达美好信念的歌。我在想:既然迎春花被人称作报春花,那么,柳树可不可以叫作报春树呢春来了,万千柳枝在春风中袅袅舞动。柳树是热爱春天的,春天也是热爱柳树的。

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

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

XML/HTML Code复制内容到剪贴板
  1. <!doctypehtml>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <metaname="viewport"content="width=device-width,initial-scale=1user-scalable=0"/>
  6. <title>2014-4-29</title>
  7. <style>
  8. *{margin:0;padding:0;}
  9. #outer{width:90%;height:490px;background:#000;margin:auto;overflow:hidden;}
  10. #inner{width:80%;height:2000px;background:#f67d42;margin:auto;position:relative;top:0;}
  11. </style>
  12. <scriptsrc='jquery-1.9.1.min.js'></script>
  13. </head>
  14. <body>
  15. <divid="spText"></div>
  16. <divid="outer">
  17. <divid="inner">
  18. 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>
  19. </div>
  20. </div>
  21. <script>
  22. varstartX,//触摸时的坐标
  23. startY,
  24. x,//滑动的距离
  25. y,
  26. aboveY=0;//设一个全局变量记录上一次内部块滑动的位置
  27. varinner=document.getElementById("inner");
  28. functiontouchSatrt(e){//触摸
  29. e.preventDefault();
  30. vartouch=e.touches[0];
  31. startY=touch.pageY;//刚触摸时的坐标
  32. }
  33. functiontouchMove(e){//滑动
  34. e.preventDefault();
  35. vartouch=e.touches[0];
  36. y=touch.pageY-startY;//滑动的距离
  37. //inner.style.webkitTransform='translate('+0+'px,'+y+'px)';//也可以用css3的方式
  38. inner.style.top=aboveY+y+"px";//这一句中的aboveY是inner上次滑动后的位置
  39. }
  40. functiontouchEnd(e){//手指离开屏幕
  41. e.preventDefault();
  42. aboveY=parseInt(inner.style.top);//touch结束后记录内部滑块滑动的位置在全局变量中体现一定要用parseInt()将其转化为整数字;
  43. }//
  44. document.getElementById("outer").addEventListener('touchstart',touchSatrt,false);
  45. document.getElementById("outer").addEventListener('touchmove',touchMove,false);
  46. document.getElementById("outer").addEventListener('touchend',touchEnd,false);
  47. </script>
  48. </body>
  49. </html>

以上就是本文的全部内容,希望对大家的学习有所帮助。

原文:http://www.cnblogs.com/leinov/p/3701951.html

标签: touch