jquery - 当用户滚动过去或低于特定的 div 时更改 css

标签 jquery css scroll vertical-scrolling

看这里: http://jsfiddle.net/1L5y559z/

假设我想在有人滚动经过或低于 div 1 时更改正文的背景颜色,如果可以的话,我将如何使用 jquery 来实现?

我知道有这个:

$(window).scroll(function() {
var y_scroll_pos = window.pageYOffset;
var scroll_pos_test = 100;

if(y_scroll_pos > scroll_pos_test) {
   $("body").css("background-color","black");
}
else
{
   $("body").css("background-color","white");
}
});

但它适用于当您滚动超过或低于特定数字像素时。我正在尝试为特定的 div 获取相同的内容。

最佳答案

这是一回事。您只需要确定 div 的顶部距离窗口顶部的距离。然后确定 div 的高度,将两者相加以获得距顶部的像素距离,您希望发生更改。然后,当您滚动到该点时,您将进行更改。

$(function(){
    $(window).scroll(function() {
        var scroll = $(window).scrollTop(); // how many pixels you've scrolled
        var os = $('#div1').offset().top; // pixels to the top of div1
        var ht = $('#div1').height(); // height of div1 in pixels
        // if you've scrolled further than the top of div1 plus it's height
        // change the color. either by adding a class or setting a css property
        if(scroll > os + ht){
            $('#div2').addClass('blue');
        }
    });
});

请看这个 fiddle :http://jsfiddle.net/5d922roc/

关于jquery - 当用户滚动过去或低于特定的 div 时更改 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704795/

相关文章:

javascript - jquery中如何知道ajax是否完成?

css - 防止注入(inject)页面更改父页面中的样式

html - CSS -> border-bottom 不显示 1.5px

iOS - UITableView 在滚动时检测手指何时越过键盘

javascript - jQuery 按钮在滚动时滑入和滑出

jquery - CSS装饰按钮变得不活动且不可点击

javascript - jquery datatables 在页面上导航时在分页表上重置所选行的数据

javascript - 如何使用CSS旋转SVG文本

如果滚动位置 > 100,则为 Javascript

javascript - 退出窗口弹出消息以使用样式 css 进行自定义