Chu*_*uck 0 css safari jquery scrolltop ios
我有一个div,如果它变长,它将显示一个滚动条。它是CSS
top: 35px;
overflow: hidden;
position: absolute;
width: 100%;
height: 100%;
bottom: 0px;
overflow-x: hidden;
display: block;
Run Code Online (Sandbox Code Playgroud)
不知何故,当我使用jQuery(v1.7.1)滚动此div时,它不适用于iPad(iOS 8.3)Safari,但在所有桌面浏览器上均能完美运行。这是代码
$('#myDivId').animate({ scrollTop: 100 });
Run Code Online (Sandbox Code Playgroud)
这个普通的JS代码在iPad Safari上都不起作用,但是在桌面浏览器上可以正常工作
var myDiv = document.getElementById('myDivId');
myDiv.scrollTop = 100;
Run Code Online (Sandbox Code Playgroud)
有人对为什么有任何想法吗?
不久前,我遇到了同样的问题。我不记得确切的原因,但是jQuery animate在那种情况下对于那些设备似乎不起作用。这对我有用:
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();
});
}
Run Code Online (Sandbox Code Playgroud)
它为普通浏览器使用jQuery动画,但为移动设备使用自定义滚动脚本。向原始作者表示歉意,我不记得该脚本来自何处。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
5810 次 |
| 最近记录: |