【问题标题】:js: change style based in scroll positionjs:根据滚动位置更改样式
【发布时间】:2018-07-24 22:20:05
【问题描述】:

我有这段代码可以改变元素的背景颜色(效果很好)

<script>
window.onscroll = function() {
    if(document.body.scrollTop == 0) {
       jQuery("header#main-header").css('background-color', 'red');
    }
}
</script>

问题是只有在页面滚动在0到100之间时才需要将颜色设置为红色,如果大于100则将颜色设置为黄色。

我在这个页面上试过这个:http://temporal-1.d246.dinaserver.com/ 但没有工作:

<script>
window.onscroll = function() {
    if(document.body.scrollTop <= 99) {
       jQuery("header#main-header").css('background-color', 'red');
    }
    if(document.body.scrollTop >= 100) {
       jQuery("header#main-header").css('background-color', 'yellow');
    }
}
</script>

【问题讨论】:

标签: jquery css styles


【解决方案1】:

那么你需要计算 top 偏移量有点不同

window.onscroll = function() {
    var doc = document.documentElement;
    var top = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
    if(top <= 99) {
       jQuery("header#main-header").css('background-color', 'red');
    }
    else {
       jQuery("header#main-header").css('background-color', 'yellow');
    }
} 

【讨论】:

    【解决方案2】:
    jQuery(document).ready(function(){
    jQuery("body").css('background-color', 'red');
    jQuery(window).scroll(function(){
        if ( jQuery(document).scrollTop() <= 99 ) {
             jQuery("body").css('background-color', 'red');
        } else {
            jQuery("body").css('background-color', 'yellow');
        }
    })
    

    })

    【讨论】:

      【解决方案3】:

      滚动时更改元素的简单执行

      $(function () {
          $(document).scroll(function() {
              var $nav = $("class name");
              // $nav.height() can be changed to whatever height you want to start the change effect
              $nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height()); 
          });
      });
      

      【讨论】:

      • 您的$nav 中有错误。另外,考虑为前端功能添加 sn-ps 而不是原始代码,并对其进行一些解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      相关资源
      最近更新 更多