移动端 ios Safari 问题及 一般解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端 ios Safari 问题及 一般解决方法相关的知识,希望对你有一定的参考价值。

ios设备中 使用 overflow 会有卡顿,解决办法:-webkit-overflow-scrolling: touch;  /*消除在ios设备卡顿*/

在ios中的click事件不执行:解决办法:①:将目标元素 改为<a>或者<button>,②:给目标元素设置 cursor:pointer; ③:click事件 写为tounched事件

转: 在ios中 

使用overflow scroll情况下,到达最极端的情况时会拖动整个页面的解决办法

方法一,从网上找到的:

function preventOverScroll(scrollPane) {
// See http://www.quirksmode.org/js/events_order.html
var CAPTURE_PHASE = true; // happens first, outside to inside
var BUBBLE_PHASE = false; // happens second, inside to outside
 
// These variables will be captured by the closures below
var allowScrollUp = true, allowScrollDown = true, lastY = 0;
 
scrollPane.addEventListener
(‘touchstart’,
function (e) {
 
// See http://www.w3.org/TR/cssom-view/#dom-element-scrolltop
allowScrollUp = (this.scrollTop > 0);
allowScrollDown = (this.scrollTop < this.scrollHeight – this.clientHeight);
 
// Remember where the touch started
lastY = e.pageY;
},
CAPTURE_PHASE);
 
// If the touch is on the scroll pane, don’t let it get to the
// body object which will cancel it
scrollPane.addEventListener
(‘touchmove’,
function (e) {
var up = (event.pageY > lastY);
var down = !up;
lastY = event.pageY;
 
// Trying to start past scroller bounds
if ((up && allowScrollUp) || (down && allowScrollDown)) {
// Stop this event from propagating, lest
// another object cancel it.
e.stopPropagation();
} else {
// Cancel this event
event.preventDefault();
}
},
CAPTURE_PHASE);
}

方法二自己想出来的,因为我发现非最极端(非最上或者最下时)时,就不会拖动整个页面,那么问题就简单了:

scrollPane.addEventListener(‘touchstart‘, function(){
         if(this.scrollTop === 0){
             //滚动到1
             this.scrollTop =1;
         }else if(this.scrollTop == this.scrollHeight - this.clientHeight){
             //滚动到最低端-1
             this.scrollTop =this.scrollHeight - this.clientHeight -1;
         }
     }, true);

以上是关于移动端 ios Safari 问题及 一般解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决ios10及以上Safari双击和双指缩放无法禁止的问题

移动端制作中可能遇到的一些问题及解决方法

jsp页面在 移动端 自适应,chrome浏览器没问题,可是safari浏览器有问题的解决方法

移动端input“输入框”常见问题及解决方法

移动端ios14版本h5无法

移动端兼容性问题解决方案