jquery - 滚动 x 高度后触发 jquery

标签 jquery css

我希望 jQuery 在用户滚动超过特定高度时更改导航背景的颜色。这是我现有的代码段。

var elementPosition = $('.home-menu').offset();

$(window).scroll(function(){
    if($(window).scrollTop() > elementPosition.top){
         $('.pure-menu-open').css('background','#222');
    } else {
         $('.pure-menu-open').css('background','#fff');
    }    
});

但它在大约 50px - 100px 滚动后将颜色更改为 #222

最佳答案

您的脚本所说的是,如果 scrollTop 值大于 .home-menu 与页面顶部的距离,则更改背景颜色。但是我想你想说的是,如果 scrollTop 值大于偏移量加上元素的高度,则更改颜色。

所以我建议将元素的高度添加到语句中。例如,如果元素的高度为 200px:

if($(window).scrollTop() > elementPosition.top + 200){

您的另一个选择是测试特定值:

if($(window).scrollTop() > 40){

这是一个演示代码笔,我在其中以编程方式添加高度 - http://codepen.io/lukeocom/pen/cbBCk

还有一篇供进一步阅读的文章 - http://iwearshorts.com/blog/measuring-user-scroll-with-jquery/

关于jquery - 滚动 x 高度后触发 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464603/

相关文章:

java - 我如何获得剩余的 session 时间?

php - html 中的奇怪 PHP

html - 如何在 Bootstrap 中从右边移动文本?

html - 如何更改 <select> 的 <optgroup> 标签的样式?

javascript - 当我们单击 jquery 垂直选项卡菜单时如何使页面滚动位置到顶部

html - layout 3 div in a fixed containing div, with heights : 1div as much as it needs, 2div 60% from the rest, 3div 40% from the rest

javascript - Ajax 调用不起作用?

javascript - 动态访问Javascript数组

android - Phonegap Android 应用程序 - 在动态生成的 <li> 中加载总是错误的数据图标

css 悬停 div 可见性