simon_wyk
2017-07-18 12:10
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>菜狗购物网</title>
<!--
作者:306607265@qq.com
时间:2017-07-18
描述:
<script type="text/javascript">
//获取classname的封装函数
function getClass(par,cls){
var gro=par.getElementsByTagName("*");
var result=[];
for (i=0;i<gro.length;i++){
if(gro[i].className==cls){
result.push(gro[i]);
}
}
return result;
}
function hascls(obj,cls){
return obj.className.match(new RegExp("(\\s|^)"+cls+"(\\s|$)"));
}
function removeclass(obj,cls){
if(hascls(obj,cls)){
var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)")
obj.className=obj.className.replace(reg,"");
}
}
function addclass(obj,cls){
if(!hascls(obj,cls)){
obj.className+=""+cls;
}
}
window.onload=function(){
window.onscroll=function(){
var top= document.documentElement.scrollTop || document.body.scrollTop
console.log(top);
var menus=document.getElementById("menu").getElementsByTagName("a");
var items=getClass(document.getElementById("content"),"item");
var currentid="";
for(i=0;i<items.length;i++){
if(top>items[i].offsetTop-200){
currentid=items[i].id;
}else
break;
}
if(currentid){
for(j=0;j<menus.length;j++){
var _href=menus[j].href.split('#');
if(_href[_href.length-1]==currentid){
addclass(menus[j],"current");
}else{
addclass(menus[j],"current");
removeclass(menus[j],"current");
}
}
}
}
}
</script>-->
<script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
var items=$("#content").find(".item");
var menu=$("#menu");
var currentid="";
var top=$(document).scrollTop();
items.each(function(){
if (top > $(this).offset().top - 300) {
currentId = "#" + $(this).attr("id");
$(".current").removeClass("current");
menu.find("[href="+currentId+"]").addClass("current");
} else {
return false;
}
});
});
});
</script>
<style>
* {
margin: 0;
padding: 0;
}
body {
font-size: 12px;
line-height: 1.7;
}
li {
list-style: none;
}
#content {
width: 800px;
margin: 0 auto;
padding: 20px;
}
#content h1 {
color: #0088bb;
}
#content .item {
padding: 20px;
margin-bottom: 20px;
border: 1px dotted #0088bb;
}
#content .item h2 {
font-size: 16px;
font-weight: bold;
border-bottom: 2px solid #0088bb;
margin-bottom: 10px;
}
#content .item li {
display: inline;
margin-right: 10px;
}
#content .item li a img {
width: 230px;
height: 230px;
border: none;
}
#menu {
position: fixed;
top: 100px;
left: 50%;
margin-left: 400px;
width: 50px;
}
#menu ul li a {
display: block;
margin: 5px 0;
font-size: 14px;
font-weight: bold;
color: #333;
width: 80px;
height: 50px;
line-height: 50px;
text-decoration: none;
text-align: center;
}
#menu ul li a:hover,
#menu ul li a.current {
color: #fff;
background: #0088bb;
}
</style>
</head>
<body>
<div id="menu">
<ul >
<li><a href="#item1">1F 男装</a></li>
<li><a href="#item2">2F 女装</a></li>
<li><a href="#item3">3F 美妆</a></li>
<li><a href="#item4">4F 数码</a></li>
<li><a href="#item5">5F 母婴</a></li>
</ul>
</div>
<div id="content">
<h1>菜狗购物网</h1>
<div id="item1" class="item">
<h2>1F 男装</h2>
<ul>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
</div>
<div id="item2" class="item">
<h2>2F 女装</h2>
<ul>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
</div>
<div id="item3" class="item">
<h2>3F 美妆</h2>
<ul>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
</div>
<div id="item4" class="item">
<h2>4F 数码</h2>
<ul>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
</div>
<div id="item5" class="item">
<h2>5F 母婴</h2>
<ul>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
</div>
</div>
</body>
</html>
其实在jQuery1.8以后.size()合并成了length属性
var currentid=""; 这里定义的是小写的i,后面字符串链接的时候写的是大写I;
menu.find("[href="+currentId+"]")这里需要加上单引号:
menu.find("[href='"+currentId+"']")
[href="+currentId+"] 是筛选条件,而find查找的是dom节点,你在前面加一个li就可以了。
即 li[href="+currentId+"]
网页定位导航特效
71394 学习 · 504 问题
相似问题