我正在尝试实现一个滚动函数,它根据用户滚动的位置移动元素,这段代码目前为止是工作的,它确实会移动元素。
问题是,我希望有一个不同函数的列表,每当您根据某个div的id或类滚动某个div时,它就会移动特定的元素。
我想如果我改变了$("#pagelight2").scrollTop()
,它会起作用,但这没有帮助。
如有任何指导,将不胜感激。
谢谢
更新后的代码可以工作,但是每当我向上滚动动画停止移动时,它真的会出现故障--谁知道更有效的方法来让它工作呢?
var $scrollingDiv = $(".Page3-PeopleWalkingDown");
var p = $("#pagedark3");
var offset = p.offset();
var top = offset.top;
$(window).scroll(function() {
var scrollval = $(window).scrollTop() - top;
if ($(window).scrollTop() > 1400) {
$scrollingDiv
.stop()
.animate({
"left": "-" + (scrollval) + "px"
});
} else
{
$scrollingDiv
.stop()
.animate({
"left": +(0) + "px"
});
}
发布于 2014-11-18 11:10:47
您需要做的是计算每个特定DIV相对于页面顶部或可滚动区域的偏移高度。
然后,使用您的.scroll()函数,当达到偏移量(即“div”偏移量与“滚动”位置匹配)时,您可以启动动画。
此外,(基于稍微不同的偏移量(例如div偏移量-600 if ),如果用户滚动回页,通过动画,您可以“重置”动画。尽管如此,这可能最终会使用户感到厌烦,工作多于利益。。。
偏移量:http://api.jquery.com/offset/
scrollTop:http://api.jquery.com/scrolltop/
发布于 2014-11-24 05:28:20
斯克罗尔允许您根据滚动条的位置(如果您知道div的位置/偏移量)来动画任何元素的CSS属性。
例如,您可以更改div的背景色,当滚动条位于顶部时以红色开始,当div顶部到达窗口顶部时以绿色结尾。
var s = skrollr.init();
<script src="http://prinzhorn.github.io/skrollr/dist/skrollr.min.js"></script>
<div style="height: 100px"></div>
<div data-0p="background-color: red;" data-100="background-color: !green;" style="height: 200px;background-color: red;" >
</div>
发布于 2014-11-20 10:47:07
我建议你去看看https://github.com/customd/jquery-visible
这是一个jQuery插件,它允许我们快速检查元素是否在浏览器可视视图中,而不管滚动位置如何。如果用户可以看到此元素,则该函数将返回true。通过这种方式,您实际上可以找到用户是否已经浏览了不同的元素,并应用了您想要的动画。
然后,您可以使用您当前的代码,以获得您想要的数字,多少是滚动等等。
https://stackoverflow.com/questions/26991797
复制相似问题