Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mobile safari、iOS 6和iOS 7上实时监控滚动位置_Javascript_Ios_Css_Safari_Scroll - Fatal编程技术网

Javascript 在mobile safari、iOS 6和iOS 7上实时监控滚动位置

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的东西 ==>

我在SO和网络上找到了很多关于这方面的帖子,但很多都是老帖子,我从来没有找到一个完全有效的答案。我正在尝试修复网页上的广告,以便当用户在其下方滚动时,它会更改为
位置: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>