我需要一种jQuery功能,当用户滚动页面时,如果某个div出现在屏幕的可见部分/中间位置,就会触发某些操作。例如:Verelo.com网站。如果您向下滚动,您将看到一个球形图标和两个图标以及带有黑色箭头的jQuery动画。我需要类似的功能。我不希望完全相同,但至少要接近。
在我的努力中,我找到了这个例子:Verelo.com,并进行了一些搜索。但是目前还没有找到任何东西。
请帮忙。
在我的努力中,我找到了这个例子:Verelo.com,并进行了一些搜索。但是目前还没有找到任何东西。
请帮忙。
$(window).scroll(function() {
var scrollTop = $(document).scrollTop();
var viewportHeight = $(window).height();
var targetPosition = $('#target').position().top;
var targetHeight = $('#target').outerHeight();
// viewport stretches from scrollTop to (scrollTop + viewportHeight)
});
.position().top
还是.offset().top
,这取决于元素的定位方式以及被滚动的内容。请参考演示。我刚刚在这里回答了这个问题哈哈,如果元素在视野中,做某事
这个插件位于这里,https://github.com/protonet/jquery.inview,它提供了一个触发器,您可以绑定它来确定何时一个元素处于视图中
$(window).scroll(function scrollDetection() {
scrollLogic();
});
当窗口滚动时,scrollLogic();
被调用。现在scrollLogic();
函数中有什么内容呢?由于它很大,我只添加了必要的部分。
function scrollLogic(){
//If page is scrolled further than 100%, drop navigation menu from top and do a dance. Preferably an Irish River dance of sorts
if( $(window).scrollTop() > howItWorksPosition) {
window.sliderTimerOn = 'false';
clearInterval(intervalId);
if( $(window).scrollTop() > howItWorksPosition && $(window).scrollTop() < featuresPosition) {btnClick('.howItWorks'); executeScene(); window.ourCustomersFrame = 'false';}
.......
}
howItWorksPosition
已经在之前被计算了
howItWorksOffset = $('#howItWorks').offset();
howItWorksPosition = howItWorksOffset.top -180;
当窗口滚动到该div时,他们调用executeScene();
并执行动画。您可以检查executeScene();
以了解他们如何执行动画。
jQuery waypoints插件可以为您准确地完成此操作:
$('.thing').waypoint(function(direction) {
// do stuff
}, { offset: 50 })
.animate
只会动画一次,除非你指示它进行其他操作,并且它接受一个回调函数,你可以使用它来触发连续的动画;当然,第一个动画是从滚动事件开始启动的。 - David Hedlund