2019-02-13 14:13:32 547浏览
今天扣丁学堂HTML5培训老师给大家详细介绍一下关于webapp页面滚动卡顿的解决办法,比如日常我们在手机浏览器在滚动当前页面(还可能是缩放页面)时,由于默认行为被阻止,导致页面被迫静止,导致用户使用体验差,感觉滚动页面有停顿感。
<div id="level1"> <div id="level2"> <div id="level3">请在此点击</div> </div> </div> <div id="info"> </div>
var level1 = document.getElementById("level1"); var level2 = document.getElementById("level2"); var level3= document.getElementById("level3"); var info = document.getElementById("info"); outDiv.addEventListener("click", function () { info.innerHTML += "level1" + "<br>"; }, false); middleDiv.addEventListener("click", function () { info.innerHTML += "level2" + "<br>"; }, false); inDiv.addEventListener("click", function () { info.innerHTML += "level3" + "<br>"; }, false);
全为 false 时,触发顺序为:level3、level2、level1 全为 true 时,触发顺序为:level1、level2、level3 level1为 true,其他为 false 时,触发顺序为:level1、level3、level2 level2为 true,其他为 false 时,触发顺序为:level2、level3、level1 level3为 true,其他为 false 时,触发顺序为:level3、level2、level1 level1为 false,其他为 true时,触发顺序为:level2、level3、level1 level2为 false,其他为 true时,触发顺序为:level1、level3、level2 level3为 false,其他为 true时,触发顺序为:level1、level2、level3
true 的触发顺序总是在 false 之前; 如果多个均为 true,则外层的触发先于内层; 如果多个均为 false,则内层的触发先于外层。
addEventListener('事件名', function(xxx){xxx}, { capture: false, passive: false, once: false })
capture:等价于以前的 useCapture 参数; once:就是表明该监听器是一次性的,执行一次后就被自动 removeEventListener 掉; passive:用于webapp的touch事件
【关注微信公众号获取更多学习资料】