【问题标题】:Displaying different logos显示不同的标志
【发布时间】:2016-01-13 10:35:12
【问题描述】:

网址:http://94.23.211.70/~cairngorm/

我正在尝试执行的任务是在导航切换到滚动时的固定标题导航时更改徽标。我尝试使用通过 Google 和此处研究过的 Javascript,但似乎没有任何点击,也许我接近解决它的边界,但我不确定。

当您访问该链接时,您会在每个导航上看到两个徽标,我想知道是否可以使用 display:none 作为一种可以以非常简单的格式解决此问题的想法。如果我不能通过 CSS 做到这一点,我想知道是否有办法通过页面内的内联样式进行 display:none,因为它是静态的,所以很容易做到?

我在这里尝试了各种方法,但隧道尽头没有光,所以除非强烈推荐 JavaScript 或其他方法,否则我将不胜感激。

开发

【问题讨论】:

标签: javascript html css


【解决方案1】:

根据我在您的问题中收集到的信息,您希望导航中的徽标根据用户滚动到的位置而改变。

如果他们在英雄横幅上,则显示白边标志,如果他们已经滚动,则显示黑边标志。

这需要一点 JavaScript 和 jQuery,应该会得到你想要的输出

$(document).ready(function() {
  function checkScroll() {
    // check if the header has changed to be sticky
    if($('header').hasClass('sticky-open')) {
      // hide all logos 
      $('.fly-wrap-logo a').hide(); 
      // only show the last logo (the one with the black edge)
      $('.fly-wrap-logo a:last-child').show(); 
    } else { 
      // hide all logos
      $('.fly-wrap-logo a').hide(); 
      // only show the first logo (the one with the white edge)
      $('.fly-wrap-logo a:first-child').show(); 
    }
  }
  // Run on ready
  checkScroll();

  // Run when the page is scrolled
  $(document).scroll(function() { 
    checkScroll(); 
  });
});

【讨论】:

  • 考虑到该功能必须在页面加载和页面滚动时运行,我认为最好让它拥有自己的功能。
  • 也是一个很好的答案,谢谢。我已经尝试了这两种方法,并且都可以正常工作,但是这个更重要一点,因为我在浮动的新导航的开头没有白色徽标。
  • 查看临时 URL Stewartside 是否有帮助,但当您向后滚动时,它会显示黑色徽标。有没有办法将主导航恢复为白色?
  • @Dev 它不适合我吗?现在还在做吗?可能是缓存问题
  • 是的,我一直在清除缓存,它确实有效,但它是一个命中注定。我说的是命中注定,因为我已经浏览了页面并向下和向上滚动进行测试,它会变回白色或保持黑色。
【解决方案2】:

试试这个功能和 CSS

功能

    $(document).ready(function() {
   if($('header').hasClass('sticky-open')) {
          $('.fly-wrap-logo a:first-child').hide();
          $('.fly-wrap-logo a:last-child').show();
        }

        else {
            $('.fly-wrap-logo a:first-child').show();
          $('.fly-wrap-logo a:last-child').hide();
        }
});

CSS

.fly-wrap-logo a:last-child{display:none;}

尝试只使用 css 而不使用 jquery

.fly-wrap-logo a{display:none;}
header .fly-wrap-logo a:first-child{display:inline;}
header.sticky-open .fly-wrap-logo a:first-child{display:none;}
header.sticky-open .fly-wrap-logo a:last-child{display:inline;}

【讨论】:

  • 是的,效果很好。感谢您抽出宝贵时间提供帮助。意味着很多,Lalji!
  • 我已将其上传到 FTP,因此您可以查看该 URL 以亲自查看。当固定导航发挥作用时,白色标志存在一小段时间,然后进入黑色标志。我对 Javascript 不是很精通,但我认为 365 和 366 与排序有关?也许我错了。
  • 这是因为上面的函数基于滚动位置而不是基于类。您可以更改徽标时的数字
猜你喜欢
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多