我正在尝试使用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。
提前致谢。
答案 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
}
});
});
});
我希望这是你正在寻找的东西,或至少让你开始的东西。