jQuery滚动事件不使用部分

时间:2016-12-25 23:50:01

标签: javascript jquery scroll

我正在尝试使用jQuery Scroll事件制作一个简单的scrollspy,但它失败了。这是我的JavaScript部分:

<script>
 $(document).ready(function(){
   $("#credit_card").scroll(function(){
     console.log('OK');
   });
 });
</script>

和HTML部分:

<section class="method first-of-group" id="credit_card">
...
</section>

正如您可能已经猜到的那样,console.log仅用于测试。此部分位于div下,此div具有“内容”ID。如果我更改“内容”ID的JavaScript代码,它就可以了。这真的很奇怪。

如果您想直播,请访问here

提前致谢。

1 个答案:

答案 0 :(得分:1)

阅读完评论后,实际了解您的意思,这是您正在寻找的解决方案。

 $(document).ready(function(){
   $("#content").scroll(function(){

     // when the user scrolls, we want to detect at what section they currently are. 
     // This can be calculated, by comparing the current window scrolltop to the position and height of the section elements.
    var currentTopOffset = $(document).scrollTop();

     $('section').each(function(){
         var min = $(this).offset().top;
         var max = $(this).offset().top + $(this).height();
         if(currentTopOffset > min && currentTopOffset < max){
           // current section
           // do something here, like getting a value from an input type hidden with the section name
         }
     });
   });
 });

我希望这是你正在寻找的东西,或至少让你开始的东西。