Javascript 在mobile safari、iOS 6和iOS 7上实时监控滚动位置
我在SO和网络上找到了很多关于这方面的帖子,但很多都是老帖子,我从来没有找到一个完全有效的答案。我正在尝试修复网页上的广告,以便当用户在其下方滚动时,它会更改为Javascript 在mobile safari、iOS 6和iOS 7上实时监控滚动位置,javascript,ios,css,safari,scroll,Javascript,Ios,Css,Safari,Scroll,我在SO和网络上找到了很多关于这方面的帖子,但很多都是老帖子,我从来没有找到一个完全有效的答案。我正在尝试修复网页上的广告,以便当用户在其下方滚动时,它会更改为位置:fixed,因此始终可见。我玩过gesturechange和touchmove,但两者都只让我走了一半 在iOS 6或7中,当用户在safari上滚动时,如何实时监控窗口的位置?这包括当用户举起手指后屏幕仍在滚动时(动量滚动)一个简单的方法有点棘手 在css中 ==> 在html中 ==> 还有一些jQuery的东西 ==>
位置:fixed
,因此始终可见。我玩过gesturechange
和touchmove
,但两者都只让我走了一半
在iOS 6或7中,当用户在safari上滚动时,如何实时监控窗口的位置?这包括当用户举起手指后屏幕仍在滚动时(动量滚动)一个简单的方法有点棘手 在css中 ==> 在html中 ==>
还有一些jQuery的东西
==>
$(文档).ready(函数(){
如果($('#myAd')。长度>0){
myAd_top=$('#myAd').position().top;
$(窗口)。滚动(功能(e){
如果(window.scrollY>myAd\u top){
document.getElementById('myAd')。className='sample fixed';
}否则{
document.getElementById('myAd')。className='sample';
}
});
}
});
问题是滚动事件在滚动结束后触发,因此在滚动停止之前,广告不会变粘。我自己已经尝试过并试图找到解决方案,我认为不幸的答案是。。。你根本不能。是的,我也得出了同样的结论。这真的让人觉得苹果并不关心开发者,除非他们正在开发一款应用程序=/
#myAd {
position: relative;
}
#myAd.fixed {
position: fixed;
}
<div id="myAd" class="sample fixed">
<!--PUT YOUR AD HERE-->
</div>
<script type="text/javascript">
$(document).ready(function() {
if ( $('#myAd').length > 0 ) {
myAd_top = $('#myAd').position().top;
$(window).scroll( function(e) {
if ( window.scrollY > myAd_top ) {
document.getElementById('myAd').className = 'sample fixed';
} else {
document.getElementById('myAd').className = 'sample';
}
});
}
});
</script>