首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >粘性头Logo Hover

粘性头Logo Hover
EN

Stack Overflow用户
提问于 2015-03-16 20:12:03
回答 2查看 248关注 0票数 1

我今天发现了这个网站,http://www.mcdonalds.de/。有人知道怎么做这样粘稠的头吗?只有徽标向下滚动导航隐藏和徽标悬停显示导航。如果任何on都可以帮助我编写代码或任何帮助我创建代码的资源。你的答复对我有很大帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-16 22:42:57

这只是一个荒谬的实现,但我认为你可能会明白这个想法。

代码语言:javascript
复制
$(window).scroll(function() {

  var $container = $(".container");
  var container_offset = $container.offset().top - $(window).scrollTop();
  console.log(container_offset);
  if(container_offset){
    $container.addClass('fixed');
  }else{
    $container.removeClass('fixed');
  }

});
代码语言:javascript
复制
@import url(http://fonts.googleapis.com/css?family=Open+Sans);
body {
  font-family: 'Open Sans', sans-serif;
  font-size: 16px;
  background-color: #bdc3c7;
  padding:0;
  margin:0;
}

.header {
  background-color: #3498db;
  float: left;
  width: 100%;
  height: 70px;
  transition: width .3s;
}

.container.fixed .header {
  width: 100px;
  max-width: 900px;
  position: fixed;
  top: 20px;
}
.container.fixed .header ul {
  display: none;
}
.container.fixed .main {
  margin-top: 70px;
}

h1 {
  float: left;
}

ul {
  float: left;
}
ul li {
  display: inline-block;
}

.container {
  margin: 0 auto;
  width: 100%;
  padding: 20px;
  background-color: #34495e;
  float: left;
}

.main {
  min-height: 1000px;
  color: #fff;
  float: left;
  line-height: 1.4em;
}

p {
  margin-bottom: 20px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  
<header class="header">
  <h1>logo</h1>
  <ul>
    <li><a href="#">foo</a></li>
    <li><a href="#">foo</a></li>
    <li><a href="#">foo</a></li>
    <li><a href="#">foo</a></li>
    <li><a href="#">foo</a></li>
 </ul>
</header>
  
<div class="main">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
  
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
  
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique fugiat eveniet reprehenderit, nesciunt asperiores enim quaerat, totam laboriosam ratione sapiente corporis, ullam cum et vitae hic dolor in blanditiis quas.</p>
</div>
  
</div>

票数 0
EN

Stack Overflow用户

发布于 2015-03-16 21:50:31

当然,你可以自己创造它。但我认为你想要一个快速而简单的解决方案。

这就是为什么我建议使用这个:http://janpaepke.github.io/ScrollMagic/

如果您想自己创建它,我建议您至少使用jQuery。阅读以下主题:

  • CSS3跃迁
  • jQuery .animate
  • jQuery滚动事件
  • CSS定位(固定部分)
  • jQuery toggleClass
  • jQuery .offset

您需要做的是:创建两个类,一个类似于“大条”,另一个类似于触发滚动事件的“小条”,执行类更改(切换)。您必须通过转换或jQuery .animate来动画它。您可以通过".offset“方法获得元素是否位于顶部(偏移量= 0)。

我已经为你树立了一个榜样。您必须将按钮单击事件替换为滚动事件。您还必须检查偏移量具有的值。如果它在顶端,使用类“大”,否则“小”。

您必须在标题(# header )的CSS中添加一个“定位:固定”。然后,div被“粘住”到窗口的顶部。当其他内容滚动到页眉栏后时,您将实现这种效果。

代码语言:javascript
复制
function scrollybolly(){
  
  var header = document.getElementById("header");
  
  if(header.className == "big"){
    header.className = "small";
  }else{
    header.className = "big";
  }

}
代码语言:javascript
复制
.big{
  width: 200px;
  height: 40px;
  border: solid black 1px;
 }

.small{
  width: 50px;
  height: 40px;
  border: solid black 1px;
  }

#header{
  -webkit-transition: width 2s ease;
-moz-transition: width 2s ease;
-ms-transition: width 2s ease;
-o-transition: width 2s ease;
transition: width 2s ease;
}
代码语言:javascript
复制
<div id="header" class="big"></div>
<Button onClick="scrollybolly()">Click here to simulate a scroll event</Button>

我用过的东西:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29086090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档