【问题标题】:jquery animate color working only once on scollingjquery动画颜色仅在滚动时工作一次
【发布时间】:2018-02-18 20:07:40
【问题描述】:
    $(window).scroll(function() 
{
    if (window.matchMedia('(min-width: 900px)').matches)
    {
        if ($(this).scrollTop()>0)
        {
            $('#upper_bar_desktop').animate({"background-color": "#ffffff" , "color": "#000000"}, 1200 );
        }

        else{
            $("#upper_bar_desktop").animate({"background-color": "initial" , "color": "#ffffff"}, 1200 );
        }
     }
 });

我已经编写了这段代码来改变我的上栏的背景颜色和字体颜色向下滚动,它在滚动一次时可以完美地工作,但是当我再次返回时它不会执行动画。

感谢您的帮助

【问题讨论】:

    标签: jquery jquery-color


    【解决方案1】:

    将初始颜色更改为任何颜色。例如#000000。

    jQuery 不能动画到初始。

    我还建议使用类。

        if ($(this).scrollTop()>0)
        {
            $('#upper_bar_desktop').addClass('fixed'); 
        }
    
        else{
            $('#upper_bar_desktop').removeClass('fixed'); 
        }
    

    然后你只使用 CSS 过渡动画。

    #upper_bar_desktop{
      transition:1s;
    }
    
    #upper_bar_desktop.fixed{
      background:#fffff;
      color:red;
    }
    

    【讨论】:

    • 实际上我在背景中有一张照片,所以我想将它设置为初始,我可以按照你的建议使用类回到初始背景吗?
    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多