【问题标题】:Want to Change Settings in js while it crosses certain position想要在 js 越过某个位置时更改设置
【发布时间】:2015-07-01 05:35:15
【问题描述】:

我正在创建一个导航栏,我正在为此使用引导程序。

当我的导航是透明的时,我使用填充顶部 60px

这是我的导航代码

 .navbar-default .navbar-nav > li > a {
   padding-top: 60px;
 }

还有我的导航栏品牌类

 .navbar-brand{
   padding-top:30px;
 }

now when the navbar scrolls > 100 it looks like this

现在我想在滚动 > 100 时将其设为 30px 这是我的 js 代码

 var a = $(".navbar-default").offset().top;
 $(document).on('scroll', function() {
 if ($(this).scrollTop() > 100) {
    $('.navbar-default').addClass("scrolled");
    $(".navbar-default .navbar-brand").css({
        "color": "#a96258"
    });
 } 
 else {
    $('.navbar-default').removeClass("scrolled");
    $(".navbar-default .navbar-brand").css({
        "color": "#fff"
    });
  }
});

我的滚动班级

 .navbar-default.scrolled{
   background-color: #fff;
   border-bottom: 1px solid #BBB9BE;
   box-shadow: 0,0,2px,#BBB9BE;
   color: #000;
   min-height: 80px;
 }

【问题讨论】:

  • 你能准备一把小提琴吗??

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

尝试将其附加到window.scroll,如下所示:

$(window).scroll(function() {
    if ($(window).scrollTop() > 100) {
        $('.navbar-default').addClass("scrolled");
        $(".navbar-default .navbar-brand").css({
        "color": "#a96258"
    });
  } 
  else {
    $('.navbar-default').removeClass("scrolled");
    $(".navbar-default .navbar-brand").css({
        "color": "#fff"
    });
  }
});

或者您也可以添加如下事件监听器

var element = $(".navbar-default");
window.addEventListener('scroll', function() {
     $(window).scrollTop() > 100 ? 
     $(element).addClass('scrolled',function(){
             $(".navbar-default .navbar-brand").css({
                    "color": "#a96258"
             });
     }) : 
     $(element).removeClass('scrolled',function(){
             $(".navbar-default .navbar-brand").css({
                    "color": "#fff"
             });
     });
});

【讨论】:

  • 这看起来像是对提供的代码的重复,只是写的有点不同。不是答案,即使问题本身有些不清楚。
  • @Shikkediel.. 仅供参考,document scrollwindow scroll.. 之间存在细微差别。
  • 那会是什么?
  • @Shikkediel.. window 对象是顶级客户端对象。 window 对象上方没有任何内容。每一帧都会创建一个window 对象,因此主窗口是一帧。 html 文档被视为documentdocument 对象是window 对象的一个​​对象。所以使用window 执行滚动或附加滚动事件总是好的!
  • 即使是我哥们!!这是一个普遍的讨论!毕竟,当我们分享时,所有知识都会翻倍.. :) 我第二点是你的最后一点.. :)
猜你喜欢
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多