2017-06-04 86 views

回答

1

你可以使用css transitions和javascript/jquery来实现效果。在滚动事件中添加一个新类到标题并添加样式以使徽标缩小。例如一个演示片段。

$(document).on("scroll", function(){ 
 
\t \t if 
 
     ($(document).scrollTop() > 50){ 
 
\t \t  $("header").addClass("shrink"); 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t $("header").removeClass("shrink"); 
 
\t \t } 
 
\t });
*{ 
 
margin:0px; 
 
padding:0px; 
 
} 
 
.header{ 
 
    padding:20px; 
 
    top: 0; 
 
    position: fixed; 
 
    -webkit-transition: all 0.5s ease-in-out; 
 
    -moz-transition: all 0.5s ease-in-out ; 
 
    transition:all 0.5s ease-in-out ; 
 
    z-index:999; 
 
    background:#FFF; 
 
    width:100%; 
 
    border-bottom:1px solid #ddd; 
 
} 
 
.header img{ 
 
    -webkit-transition: all 0.5s ease-in-out; 
 
    -moz-transition: all 0.5s ease-in-out ; 
 
    transition:all 0.5s ease-in-out ; 
 
    width:75px; 
 
    height:75px; 
 
} 
 
    
 
.shrink{ 
 
    padding:10px; 
 
} 
 

 
.shrink img{ 
 
    width:50px; 
 
    height:50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header class="header"> 
 
    <img src="http://via.placeholder.com/350x150" title="logo"> 
 
</header> 
 
    
 
<div class="container"> 
 
    <p><strong>Scroll down</strong></p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
    </p> 
 
</div>

+0

哇非常感谢XYZ。它的工作,我只是有一个问题,如果我想让徽标在白色酒吧内缩小,当有人在他们的智能手机上看它时呢? – Jeff

+1

@Jeff使用CSS媒体查询,并设置日志的大小在手机屏幕的宽度较小。所以当用户打开它时,头部会变小。 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Media_Queries/Using_media_queries – XYZ

+0

哇,这太令人难以置信了。我使用媒体查询,它工作。我认为这是一些JavaScript功能,但有了你的帮助,你真的让我的一天和救了我。非常感谢你XYZ ......太棒了 – Jeff

0

您可以使用JQuery的滚动事件从顶部获取滚动的位置。基于此,您可以将不同的CSS类应用于徽标并动态更改其大小。

$(window).on('scroll',function(event){ 
    console.log(event); 
}); 

更多here

很好地处理滚动事件页面标题的另一个很酷的库是Headroom.js。你应该检查一下。