<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
.main{
width: 800px;
margin: 0 auto;
}
.main li{
width: 800px;
height: 500px;
font-size: 100px;
}
.floor{
position:fixed;
left: 50px;
top:200px;
display: none;
}
.floor ul{
width: 40px;
background: red;
}
.floor ul li{
width: 40px;
height: 40px;
background: yellow;
line-height: 40px;
text-align: center;
cursor: pointer;
font-family: 微軟雅黑;
font-size: 12px;
color:#666;
}
<script>
// 獲取li集合
var li = document.getElementById('floors').getElementsByTagName('li');
// 定義數組
var arr = ['服裝','手機','家具','游戲','電器','通信','冰箱'];
var arr1 = ['1F','2F','3F','4F','5F','6F','7F'];
var arr2=['500','1000','1500','2000','2500','3000','3500']
var goS,nowS,timer;
// 遍歷
for( var i=0;i<li.length;i++){
// 存下標
li[i].i=i;
li[i].onmouseover=function(){
this.innerHTML=arr[this.i];
this.style.background="red";
this.style.color='#fff';
}
li[i].onmouseout=function(){
this.innerHTML=arr1[this.i];
this.style.background="yellow";
this.style.color="#666";
}
li[i].onclick=function(){
// 拿到要去的樓層高度
goS = arr2[this.i];
if (timer){
clearInterval(timer);
}
//如果當前滾輪的高度大于你要去的樓層高度,就執行runY函數
if (scroll()>goS){
// 每一毫秒都執行一次定時函數,每一次都要把滾輪高度減10
timer = setInterval(runY,1);
}
//如果當前滾輪的高度小于你要去的樓層高度,就執行runX
if (scroll() < goS) {
// 每一毫秒都執行一次定時函數,每一次都要把滾輪高度加10
timer = setInterval(runX,1);
}
}
function runY(){
// 滾動高度要不斷的減少,才能到達你要去的樓層高度
if(document.body.scrollTop){
document.body.scrollTop=document.body.scrollTop-10;
// 假如滾輪高度小于等于你要去的樓層高度,清楚定時函數就停止了
if (document.body.scrollTop <= goS ) {
document.body.scrollTop = goS
clearInterval(timer);
}
}else{
document.documentElement.scrollTop=document.documentElement.scrollTop-10;
if(document.documentElement.scrollTop<=goS){
document.documentElement.scrollTop=goS;
clearInterval(timer);
}
}
}
function runX(){
// 滾動高度要不斷的增加,才能到達你要去的樓層高度
if(document.body.scrollTop){
document.body.scrollTop=document.body.scrollTop+10;
if (document.body.scrollTop >= goS || document.body.scrollTop >=3201) {
document.body.scrollTop = goS;
clearInterval(timer);
}
}else{
document.documentElement.scrollTop=document.documentElement.scrollTop+10;
if(document.documentElement.scrollTop>=goS||document.documentElement.scrollTop>=3199){
document.documentElement.scrollTop=goS;
clearInterval(timer);
}
}
}
}
console.log(document.body.scrollTop);
// 滾動執行的函數,檢測滾動條的距離
window.onscroll=function(){
var floors = document.getElementById('floors');
console.log(document.body.scrollTop);
console.log(document.documentElement.scrollTop)
var top=document.body.scrollTop||document.documentElement.scrollTop;
if(top<=10){
floors.style.display="none";
}else{
floors.style.display="block";
}
}
function scroll(){
if(document.body.scrollTop){
return document.body.scrollTop;
}else{
return document.documentElement.scrollTop;
}
}
</script>
</body>
</html>
實現樓層(兼容ie8)功能
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- HTML5有個功能就可以將圖片轉換base64,那就是FileReader。同時我們也需要對圖片大小執行限制和壓縮...
- 我們知道儲存方式分為兩種:內存 和 閃存。內存的存儲是臨時的,運行時是有效的且效率很高,而閃存則是一種持久化儲存,...