【问题标题】:How to change entire header on scroll如何在滚动时更改整个标题
【发布时间】:2013-11-25 23:23:37
【问题描述】:

我有一个客户想要这个网站上的标题http://www.solewood.com/ 我在这里发现了一些问题,但它们仅适用于标题的某个元素。这是我正在开发的网站http://treestyle.com/ 密码是 vewghu 他们都是shopify网站。任何帮助将不胜感激。

【问题讨论】:

  • 好的,我让它工作了: $(window).scroll(function(e){ $el = $('.header'); if ($(this).scrollTop( ) > 0){ $el.toggleClass('header_bar'); } });但是,元素不断在页面下方切换,有什么解决办法吗?
  • 在下面查看我的编辑。在 jQuery 函数中使用 $el.toggleClass('header_bar', $(this).scrollTop() > 0); 而不是 if 语句。

标签: header shopify onscroll


【解决方案1】:

如果您查看solewoood 网站,您可以了解他们是如何实现标头的。

当页面在顶部时,标题div有这个CSS:

<div class="header">

.header {
    position: fixed;
    transition: all 500ms ease 0s;
    width: 100%;
    z-index: 1000;
}

当你向下滚动时,.header_bar CSS 类也会添加到 div 中:

<div class="header header_bar">

.header_bar {
    background-color: #FFFFFF;
    border-bottom: 1px solid #E5E5E5;
}

.header {
    position: fixed;
    transition: all 500ms ease 0s;
    width: 100%;
    z-index: 1000;
}

当用户从顶部向下滚动时,还有一些其他的东西也会发生变化(徽标、文本颜色等),但你明白了。

如果您不确定如何检测用户是否位于页面顶部,请参阅here

编辑:

针对您的评论,尝试使用带有 2 个参数的 jQuery 的 .toggleClass()

例如:

$(window).scroll(function(e){
    $el = $('.header');
    $el.toggleClass('header_bar', $(this).scrollTop() > 0); 
}); 

【讨论】:

  • 我一直在研究这些信息,但仍然无法编写有效的 javascript。他们有比我更多的元素。这是我的主题。液体:
  • 这是我最终做的,但我仍然无法弄清楚徽标或更改文字颜色,所以客户取消了这个,非常感谢您的帮助。
【解决方案2】:

这很好地表明了这一点:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_shrink_header_scroll

我使用这种技术将背景颜色在滚动时变为白色,然后在返回顶部时变为透明。

如果你想完全换掉标题。您可以复制标题,然后使用它来打开和关闭这些标题。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签