粘性滚动是当导航在滚动过程中会占粘于浏览器上,达到方便网站页面浏览的效果,也是一种用户体验,下面我们看一下是怎么实现的:
jQuery的 smint插件,也是一个导航菜单固定插件。当页滚动时,导航菜单会固定在顶部;当点击菜单时,页面会平滑的滚动到对应的区域。
兼容性
由于 smint 使用了 position: fixed
,所以它不兼容 IE6。适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.
引入文件
<link href="css/demo.css" rel="stylesheet" type="text/css">
<script src="js/jquery.min.js"></script> <script src="js/jquery.smint.js"></script>
HTML
<body onload="setTimeout(function() { window.scrollTo(0, 1) }, 100);"> <div class="wrap"> <div class="subMenu"> <div class="inner"> <a href="#" id="sTop" class="subNavBtn">Home</a> <a href="#" id="s1" class="subNavBtn">Section 1</a> <a href="#" id="s2" class="subNavBtn">Section 2</a> <a href="#" id="s3" class="subNavBtn">Section 3</a> <a href="#" id="s4" class="subNavBtn">Section 4</a> <a href="#" id="s5" class="subNavBtn end">Section 5</a> </div> </div> <div class="section sTop"> <div class="inner"></div><br class="clear"> </div> <div class="section s1"> <div class="inner"><h1>Section 1</h1></div> </div> <div class="section s2"> <div class="inner"><h1>Section 2</h1></div> </div> <div class="section s3"> <div class="inner"><h1>Section 3</h1></div> </div> <div class="section s4"> <div class="inner"><h1>Section 4</h1></div> </div> <div class="section s5"> <div class="inner"><h1>Section 5</h1></div> </div> </div> </body>
注意:菜单的外部容器(如上例的 subMenu)需要设置样式 position:absolute,并且每个菜单的 a 标签需要设置 id,id 的值与下面对应区域的 class 的值一致。
JavaScript
$(function() { $('.subMenu').smint({ scrollSpeed : 1000 }); });