h5页面ios,双击向上滑动,拖拽到底部还能继续拖拽

Michelle ·
更新时间:2024-11-13
· 771 次阅读

在ios下,双击屏幕某些地方,滚动条会自动向上走一段。

当用微信看h5的时候,拖拽到底部,会漏出来,微信自带下面的灰黑色皮肤。

用js解决一下吧,这俩问题很类似,总结到一起了。

----------特别注意,安卓没有发生过这些情况,因为解决办法是给最外层的wrapper,overflow-y:auto;也就是放弃了原生的滚动条,所以解决的时候要判断一下系统,安卓就不用处理了。

html部分:----------------------------
内容部分aaaa111
内容部分aaaa222
内容部分aaaa333
css部分:-------------------------- .wrapper2{ position:absolute; top:0; bottom:0; left:0; right:0; overflow-y:auto; -webkit-overflow-scrolling : touch; } js部分:---------------------------- /*阻止ios拖拽到底部还能继续拖拽*/ var ScrollFix = function(elem) { // Variables to track inputs var startY, startTopScroll; elem = elem || document.querySelector(elem); // If there is no element, then do nothing if(!elem) return; // Handle the start of interactions elem.addEventListener('touchstart', function(event){ startY = event.touches[0].pageY; startTopScroll = elem.scrollTop; if(startTopScroll = elem.scrollHeight) elem.scrollTop = elem.scrollHeight - elem.offsetHeight - 1; }, false); }; /*判断设备调用ScrollFix*/ var sUserAgent=navigator.userAgent.toLowerCase(); if(sUserAgent.match(/iphone os/i) == "iphone os"){ (′.wrapper′).addClass(′wrapper2′);ScrollFix(('.wrapper2')[0]); } /*阻止用户双击使屏幕上滑*/ var agent = navigator.userAgent.toLowerCase(); //检测是否是ios var iLastTouch = null; //缓存上一次tap的时间 if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0) { document.body.addEventListener('touchend', function(event) { var iNow = new Date() .getTime(); iLastTouch = iLastTouch || iNow + 1 /** 第一次时将iLastTouch设为当前时间+1 */ ; var delta = iNow - iLastTouch; if (delta 0) { event.preventDefault(); return false; } iLastTouch = iNow; }, false); }
啃火龙果的兔子 原创文章 64获赞 30访问量 5652 关注 私信 展开阅读全文
作者:啃火龙果的兔子



继续 IOS

需要 登录 后方可回复, 如果你还没有账号请 注册新账号