gpt4 book ai didi

jQuery animate() scrollTop 属性在 iPad Safari 上不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:11 27 4
gpt4 key购买 nike

我有一个 div,如果它变长,它会显示一个滚动条。它的CSS是

top: 35px;
overflow: hidden;
position: absolute;
width: 100%;
height: 100%;
bottom: 0px;
overflow-x: hidden;
display: block;

不知何故,当我使用 jQuery (v1.7.1) 滚动此 div 时,它在 iPad (iOS 8.3) Safari 上不起作用,但它在所有桌面浏览器上都能完美运行。这是代码

$('#myDivId').animate({ scrollTop: 100 });

这段纯 JS 代码在 iPad safari 上不起作用,但在桌面浏览器上运行良好

var myDiv = document.getElementById('myDivId');
myDiv.scrollTop = 100;

有人知道为什么吗?

最佳答案

我前段时间遇到了同样的问题。我不记得确切原因,但似乎 jQuery 动画在那些设备的那种情况下不起作用。这对我有用:

var scrollOffset = $('#myDivId').offset().top;

if (navigator.userAgent.match(/iPad|iPhone|iPod|Android|Windows Phone/i)) {

function customScrollTo(to, duration) {
var start = 0,
change = to - start,
currentTime = 0,
increment = 20;

var animateScroll = function(){
currentTime += increment;
var val = Math.easeInOutQuad(currentTime, start, change, duration);
window.scrollTo(0,val);

if(currentTime < duration) {
setTimeout(animateScroll, increment);
}
};
animateScroll();
}

Math.easeInOutQuad = function (t, b, c, d) {
t /= d/2;
if (t < 1) return c/2*t*t + b;
t--;
return -c/2 * (t*(t-2) - 1) + b;
};

customScrollTo(scrollOffset, 1000);
}else{
$('#myDivId').animate({
scrollTop: scrollOffset
}, 1000, function(){
$('#myDivId').clearQueue();
});
}

它为普通浏览器使用 jQuery animate,但为移动设备使用自定义滚动脚本。向原作者道歉,我不记得剧本是从哪里来的。希望这会有所帮助。

关于jQuery animate() scrollTop 属性在 iPad Safari 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com