更改滚动标题的背景颜色

Posted

技术标签:

【中文标题】更改滚动标题的背景颜色【英文标题】:Change background color of header on scroll 【发布时间】:2021-02-24 20:21:15 【问题描述】:

我想在标题滚动时更改标题的背景颜色(从透明变为黑色)。我该怎么做?

我使用 CMS 来创建标题。那是我目前的代码:

<script>
  jQuery(function($) 
    $(window).scroll(function() 
      if ($(document).scrollTop() > 50) 
        $('#section-padding').addClass('reduce-section-padding');
        $('#row-width').addClass('increase-row-width');
        $('#my-site-logo').addClass('reduce-logo');
       else 
        $('#section-padding').removeClass('reduce-section-padding');
        $('#section-padding').addClass('slow-transition');
        $('#row-width').removeClass('increase-row-width');
        $('#row-width').addClass('slow-transition');
        $('#my-site-logo').removeClass('reduce-logo');
        $('#my-site-logo').addClass('slow-transition');
      
    );
  );
</script>

<style>
  .reduce-section-padding 
    transition: all 0.9s ease-out 0s;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
  
  
  .reduce-logo 
    transition: all 0.9s ease-out 0s;
    transform: scale(0.8) !important;
    /* Standard syntax */
    /*content: url(/wp-content/uploads/2020/05/favicon.png) !important;*/
  
  
  .increase-row-width 
    transition: all 0.9s ease-out 0s;
    width: 70% !important;
  
  
  .slow-transition 
    transition: all 0.9s ease-out 0s;
  
  
  #main-content 
    margin-top: 5vw;
  
</style>

【问题讨论】:

你能添加你的html和css并创建一个sn-p吗? 这是网站,这里可以看到标题carpacomunication.it 【参考方案1】:

您可以像这样使用纯 javascript: (JSFiddle:https://jsfiddle.net/omartheman949/5jLngzkh/12/) 将以下script 标记及其内容放在现有的script 标记下(或将以下script 标记的内容放在现有的script 标记内):

<script>
  var prevScrollpos = window.pageYOffset;
  window.onscroll = function() 
    var currentScrollPos = window.pageYOffset;
    if (window.pageYOffset === 0) 
      document.getElementById("header").style.backgroundColor = "transparent";
      document.getElementById("header").style.color = "black";
     else 
      document.getElementById("header").style.backgroundColor = "black";
      document.getElementById("header").style.color = "white";
    
    prevScrollpos = currentScrollPos;
  
</script>

【讨论】:

感谢您的重播,但我不知道我必须在哪里插入此代码。冷你又帮我了? :D 嘿@Billy,我相信您可以将此代码插入&lt;script&gt;&lt;/script&gt; 标记内,我会想到页面上的任何位置。与上面的 jQuery 代码相同。我在我的 Wordpress 页脚中使用了这段代码,Wordpress 在每一页上复制页脚,所以代码被应用到每一页。所以我认为在你的 jQuery 脚本旁边有一个 script 标记,甚至与 jQuery 代码共享相同的 script 标记。 谢谢,我为代码插入了另一个部分,现在它可以工作了! :)

以上是关于更改滚动标题的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改滚动标题背景的颜色

如何在滚动时更改不同背景颜色的汉堡菜单颜色?

列表视图滚动更改项目视图的背景颜色(简单适配器)

菜单背景在滚动时更改颜色

在具有多个部分的 tableView 中滚动时使用平滑动画更改视图背景渐变颜色

如何在滚动时突出显示/更改表格视图部分标题的背景颜色