javascript - 如何在用户滚动经过某个 div 时更改 CSS

标签 javascript jquery html css

我正在尝试实现一个滚动功能,它根据用户滚动的位置移动元素,这段代码目前有效并且确实移动了元素。

问题是我想要一个不同函数的列表,当你根据它的 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"
                        });
                }

最佳答案

您需要做的是计算每个特定 DIV 相对于页面顶部或可滚动区域的偏移高度。

然后,使用您的 .scroll() 函数,当达到偏移量时(即“div”偏移量与“滚动”位置匹配),您可以关闭动画。

此外,(基于稍微不同的偏移量(例如 div 偏移量 -600px),如果用户向上滚动页面,超过动画,您可以“重置”动画。虽然,这可能会让用户感到厌烦,并且功大于利……

偏移量:http://api.jquery.com/offset/

滚动条:http://api.jquery.com/scrolltop/

关于javascript - 如何在用户滚动经过某个 div 时更改 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991797/

相关文章:

javascript - 无法使用全局变量作为 jQuery 函数的参数

javascript - 为什么 Redux 示例将空对象作为第一个 Object.assign() 参数传递?

javascript - 串行和并行之间的区别

javascript - 使用 `this` 中的成员函数时,将 babel 类保留为 `setTimeout`

javascript - 推送 document.ready 回调 : is it possible?

html - 有没有办法要求浏览器在其父元素之后渲染 HTML 元素?

jQuery UI 对话框冲突

javascript - 如何在使用 JQuery 到达最后一张幻灯片时不显示下一张幻灯片?

html - 你如何延迟 z-index 转换?

html - 如何组成覆盖 html 表格的各个单元格(具有自己的内容)的元素?