第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

Android 轉(zhuǎn) web app 筆記一:Touch事件

標(biāo)簽:
Android WebApp

类似于Android的Touch事件,用户一次滑动会出发一次Down,0次或者多次Move,一次Up。敲敲打打,第一次用Js实现,代码如下

<html>
<head>
    <title>active.html</title>

    <meta charset=UTF-8">
    <meta name="keywords" content="keyword1,keyword2,keyword3">
    <meta name="description" content="this is my page">
    <meta name="viewport"
          content="width=device-width,
                                     initial-scale=1.0,
                                     maximum-scale=1.0,
                                     user-scalable=no">

    <style type="text/css">

        div {
            background-color: #ccc;
            height: 100%;
            width: 100%;
            position: absolute;
        }

        body {
            margin: 0px;
            padding: 0px;
            overflow: hidden;
        }

    </style>

</head>

<body>
<div id="content">
    <p id="desc"></p>
</div>
</body>
<script type="text/javascript">
    var desc = document.getElementById("desc");
    var startHandler = function (e) {
        var startX = e.touches[0].pageX;
        var startY = e.touches[0].pageY;
        desc.innerText = "start X: " + startX + "  Y : " + startY;
        desc.appendChild(document.createElement("br"));
    }
    var moveHandler = function (e) {
        desc.innerText = desc.innerText+ " move X: " + e.touches[0].pageX + "  Y : " + e.touches[0].pageY;
        desc.appendChild(document.createElement("br"));
    }
    var endHandler = function (e) {
        desc.innerText = desc.innerText+  "    touchend  ";
    }
    var content = document.getElementById("content");

    content.addEventListener('touchstart', startHandler);
    content.addEventListener('touchmove', moveHandler);
    content.addEventListener('touchend', endHandler);

</script>

</html>

使用Chrome测试效果如图:
模拟手指按下没有滑动时:
这里写图片描述
模拟手指滑动时:
这里写图片描述
和预期一样,轻松实现了时间的监听,点支烟庆祝。
部署到真机
手指点击效果:
这里写图片描述
没问题,准备再点只烟庆祝。
手指滑动效果:
这里写图片描述
无论手指如何滑动,touchmove只会触发一次,touchend完全失效,不会触发,反复查看代码,作为web新手小白,无解,无奈找度娘。几番搜索之后,初入web门槛的我,遇到了所有web工程师了噩梦,浏览器兼容性问题!在Android4.x ,和部分浏览器touchmove只会触发一次 或者不会触发,touchend无法触发。蛋疼!一个比较简单粗暴的解决方案,在startTouch中加入如下代码:

    e.preventDefault();

方法说明:
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。(摘自w3cschool) 意思很简单,设置了这个方法之后,相当于是取消了浏览器自身的一切默认事件操作。
加上之后在我自己的Android真机(小米Note OS MIUI 4.4.4)效果如下:
手指点击:
这里写图片描述
手指滑动:
这里写图片描述
基本上解决了兼容性而出现move 和end 无法正常触发的问题。
但并不完美!
第一:当点击的时候,会之上触发一次Move方法(这点还勉强可以接受)。
第二:设置了 e.preventDefault();方法之后,取消浏览器自身的默认操作,这就比较蛋疼了,当前web页面不能滑动了!也就是意味着如果当前的web 页面的内容如果超过了屏幕的高度,屏幕以外的内容就无法看到了,因为取消的设置了preventDefault,取消了浏览器本身的操作。

點擊查看更多內(nèi)容
12人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
8547
獲贊與收藏
6550

關(guān)注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消