這個可能有些兼容問題和小bug,新手寫的不完善 歡迎指出
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <style type="text/css"> *{ margin: 0px; padding: 0px; list-style: none; } #header{ width: 1000px; height: 650px; margin: 0 auto; position: relative; } .fl{ width: 1000px; height: 600px; margin: 0 auto; position: relative; } #footer{ width: 1000px; height: 600px; margin: 0 auto; position: relative; } #calc{ height: 360px; width: 30px; position: fixed; display: none; left: 20px; top: 100px; } #calc ul li{ width: 28px; height: 28px; border: dashed 1px lightgray; text-align: center; line-height: 30px; cursor: pointer; position: relative; } #calc ul li span{ display: none; width: 28px; height: 28px; position: absolute; z-index: 1; background-color: red; overflow: hidden; top: 0px; left: 0px; font-size: 12px; } </style> </head> <body> <div id="calc"> <ul id="ul"> <li>1<span>服飾</span></li> <li>2<span>美妝</span></li> <li>3<span>手機</span></li> <li>4<span>家電</span></li> <li>5<span>數碼</span></li> <li>6<span>服務</span></li> <li>7<span>圖書</span></li> <li>8<span>母嬰</span></li> <li>9<span>家具</span></li> <li>10<span>運動</span></li> <li>11<span>食品</span></li> <li>top<span>頂部</span></li> </ul> </div> <div id="header"> <img src="header.png"> </div> <div class="fl"> <img src="服飾.png"> </div> <div class="fl"> <img src="美妝.png"> </div> <div class="fl"> <img src="手機.png"> </div> <div class="fl"> <img src="家電.png"> </div> <div class="fl"> <img src="數碼.png"> </div> <div class="fl"> <img src="服務.png"> </div> <div class="fl"> <img src="圖書.png"> </div> <div class="fl"> <img src="母嬰.png"> </div> <div class="fl"> <img src="居家.png"> </div> <div class="fl"> <img src="運動.png"> </div> <div class="fl"> <img src="食品.png"> </div> <div id="footer"><img src="footer.png"></div> </body> </html> <script type="text/javascript"> var header=document.getElementById('header'); var fl=document.getElementsByClassName('fl'); var footer=document.getElementById("footer"); var ul=document.getElementById("ul"); var li=ul.getElementsByTagName('li'); var span=ul.getElementsByTagName("span"); window.addEventListener("scroll",function(){ var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop; console.log(scrollTop) if(scrollTop>=650){ ul.parentNode.style.display="block"; } if(scrollTop<650){ ul.parentNode.style.display="none"; } for(i in fl){ if(fl[i].offsetTop-scrollTop>-300){ that=span[i]; for(var j=0;j<span.length;j++){ if (span[j]!=that) { span[j].style.display="none" } } span[i].style.display="block"; return false } } },0) for(var i=0;i<li.length;i++){ (function(index){ li[index].addEventListener("mouseover",function(){ span[index].style.display="block"; },false) })(i) } for(var i=0;i<li.length;i++){ (function(index){ li[index].addEventListener("click",function(){ span[index].style.display="block"; document.body.scrollTop=index*600+650; },false) })(i) } for(var i=0;i<li.length;i++){ (function(index){ li[index].addEventListener("mouseout",function(){ span[index].style.display="none"; },false) })(i) } </script>