zoukankan      html  css  js  c++  java
  • 移动端网页上下滑动的事件

    前面写过1篇 jquery mobile.js的swipe事件,来实现开关按钮的效果。查看资料后发现,swipe事件左右事件,移动端的上下滑动事件并不是用swipe.

    网上搜索之后,发现移动端的原生事件touch可以解决这个问题。touch事件

    本文例子的要求是:上下滑动超过给定的像素,隐藏/显示页面的元素。开始是隐藏的状态。

    注意,touch事件并需要引入任何的js库。

    <!DOCTYPE html>
    <html id="a">
    <head lang="en">
        <meta charset="UTF-8">
        <title>1元许愿</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <meta name="apple-mobile-web-app-capable" content="no">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <meta name="format-detection" content="telephone=no">
        <style>
    	.div1{200px;height:200px;background:#F00;}
    	</style>
        </head>
    <body class="bg-home">
    	<div class="div1">
        
        </div>
    <section class="padding-bottom-80" data-tag="css-nav">
    
    </section>
    
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
    $('.div1').bind('click',function(){
    	alert('a');
    	})
    </script>
    
    <script>
    //touch事件相关的的代码
    		var startX, startY, endX, endY;
    	
    	    document.getElementById("a").addEventListener("touchstart", touchStart, false);
            document.getElementById("a").addEventListener("touchmove", touchMove, false);
            document.getElementById("a").addEventListener("touchend", touchEnd, false);
    	
    	
    	 		function touchStart(event) {
                    var touch = event.touches[0];
                    startY = touch.pageY;
                    startX = touch.pageX;
                }
                function touchMove(event) {
                    var touch = event.touches[0];
                    endY = startY - touch.pageY;
                    endX = startX - touch.pageX;
                }
    			
    			
                function touchEnd(event) {
    				//100是给定触上下方向摸起始的坐标差
                    if (endY >100||endY<-100) {
    					//jquery中的toggle()方法
                        $(".div1").toggle();
                    }
    				//如果不重置,会出现问题
    				endY = 0;
    				
    			}
    			
    			$("html").attr("id","a")
    </script>
    </body>
    </html>
    

      

    上面的例子,最好在手机浏览器里测试。当手指上下滑动超过给定的值,div的display属性就会切换。

  • 相关阅读:
    红楼【建筑位置】
    红楼【人物关系】
    jenkins【shared-libraries】
    linux 安装mysql8.0 tar.xz
    MySQL 输入字符串对日期进行模糊查询
    解决kali linux 和 win10 双系统时间不一致问题
    linux idea桌面图标
    linux卸载openjdk11
    tar.xz解压
    pandas模块高性能使用方法总结
  • 原文地址:https://www.cnblogs.com/xiaochongchong/p/5665724.html
Copyright © 2011-2022 走看看