亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生js實現淘寶首頁點擊按鈕緩慢回到頂部效果

2019-11-20 20:51:29
字體:
來源:轉載
供稿:網友
淘寶首頁的回到頂部按鈕是這樣的:下拉到一定距離后按鈕才顯示出來,鼠標放到按鈕上時,按鈕背景會變成灰色,并且圖標變成了文字。點擊按鈕緩慢回到頂部

我們先分析下實現這樣的效果需要添加哪些事件。鼠標移進移出按鈕,按鈕表現發生變化,所以需要給按鈕添加mouseover, mouseout事件。要偵聽滾動條的變化,所以需要給window添加scroll事件,點擊按鈕回到頂部,按鈕添加click事件。我們將事件處理程序封裝成三個函數moveIn, moveOut, goTop;

下面先給出html/css代碼
復制代碼 代碼如下:

<div class="container">
<div class="header">頭部</div>
<div class="content">主要內容,高度是2000px</div>
<div class="footer>底部</div>
<div id="btn">返回頂部</div>
</div>

復制代碼 代碼如下:

.container { width: 980px; margin: 0 auto; height: auto; background: #aaa;}
.content { height: 2000px; border: 1px solid blue; }
#btn {
position:fixed;
bottom: 50px;
right: 0;
width: 54px;
height: 55px;
background: url(icons.png) no-repeat 0 -110px; } //背景圖可隨意找一張
font-size: 12px;
line-height: 55px;
text-align: center;
text-indent: -9999em;
cursor: pointer;
display: none;

下面是完整的js代碼
復制代碼 代碼如下:

window.addEventListener("load",function() {
var btn = document.getElementById("btn");
btn.addEventListener("mouseover",moveIn, false);
btn.addEventListener("mouseout", moveOut, false);

function moveIn() {
btn.style.color = "#ffffff"; //修改的是內聯樣式,具有最高的優先級;
btn.style.textIndent = "0em";
btn.style.backgroundImage = "none";
btn.style.backgroundColor = "#FF4401";
}
function moveOut() {
btn.style.textIndent = "-9999em";
btn.style.backgroundImage = "url(icons.png)";
}

function goTop(acceleration, time) { //修改參數可調整返回頂部的速度
acceleration = acceleration || 0.1;
time = time || 10;
var speed = 1 + acceleration;
function getScrollTop() { //取得滾動條的豎直距離
return document.documentElement.scrollTop || document.body.scrollTop;
}
function setScrollTop(value) { //設置滾動條的豎直距離,實現效果的關鍵就是在很短的間隔時間內不斷地修改滾動條的豎直距離,以實現滾動效果
document.documentElement.scrollTop = value;
document.body.scrollTop = value;
}
window.onscroll = function() {
var scrollTop = getScrollTop();
if (scrollTop > 100) { //判斷滾動條距離窗口頂部多遠時顯示出來,這里是100px
btn.style.display = "block";
} else {
btn.style.display = "none";
}
};
btn.onclick = function () {
var timer = setInterval(function() {
setScrollTop(Math.floor(getScrollTop() / speed)); //這行代碼是關鍵,取得滾動條豎直距離,除以speed后再給滾動條設置豎直距離
if (getScrollTop() == 0)
clearInterval(timer);
}, time);
};
}
goTop(0.2, 8);
}, false);

當然,還有其他的實現方法,下面給出其他方法的關鍵代碼
復制代碼 代碼如下:

btn.onclick = function() {
clearInterval(timer);
var timer = setInterval(function() {
var now = scrollTop; //滾動條豎直距離
speed = (0 - now) / 10;
speed = Math.floor(speed);
if (now == 0);
clearInterval(timer);
document.documentElement.scrollTop = now + speed; //標準模式下的瀏覽器
document.body.scrollTop = now + speed; //怪異模式下的瀏覽器
}, 15);
}

 
這里的代碼主要還是參考了網上其他資源,再加了一點自己的理解。當然還有其他實現方法,比如JavaScript最早時間就支持的window.scrollTo()。用jQ來實現的話代碼量將會變得很少,可參看w3cplus

個人覺得,先學好原生JavaScript,比如搞清楚數據類型,閉包,繼承,作用域,DOM,CSS,事件處理,Ajax等,用熟練后學習其他框架將會容易很多。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清日韩电视剧大全免费播放在线观看| 亚洲加勒比久久88色综合| 亚洲福利视频网| 午夜精品蜜臀一区二区三区免费| 日韩欧美中文第一页| 91wwwcom在线观看| 欧美成人久久久| 91精品国产综合久久香蕉922| 欧美大片在线影院| 亚洲人成在线观| 亚洲欧美自拍一区| 美日韩精品免费视频| 亚洲一区二区三区视频| 亚洲国产欧美日韩精品| 日韩欧美一区二区在线| 奇米影视亚洲狠狠色| 亚洲男女性事视频| 成人动漫网站在线观看| 久久天天躁狠狠躁夜夜躁| 亚洲丝袜在线视频| 69av视频在线播放| 欧美肥婆姓交大片| 久久久国产精品一区| 91禁外国网站| 久精品免费视频| 亚洲精品在线视频| 日韩欧美亚洲综合| 日韩成人av网址| 1769国内精品视频在线播放| 亚洲在线第一页| 国产精品1234| 日韩大片免费观看视频播放| 韩国日本不卡在线| 欧美久久精品午夜青青大伊人| 久久亚洲精品成人| 亚洲护士老师的毛茸茸最新章节| 亚洲性无码av在线| 国产成人精品综合| 亚洲精品91美女久久久久久久| 午夜精品一区二区三区av| 国产欧美精品在线| 91伊人影院在线播放| 精品人伦一区二区三区蜜桃免费| 91日本在线视频| 亚洲欧洲高清在线| 欧美成人剧情片在线观看| 91精品啪在线观看麻豆免费| 日韩电影中文字幕在线观看| 久久精品小视频| 欧美另类在线播放| 91色p视频在线| 欧美裸体xxxx| 美女扒开尿口让男人操亚洲视频网站| 欧美极品少妇xxxxⅹ裸体艺术| 久久精品男人天堂| 久久成人av网站| 亚洲毛片在线观看.| 国产亚洲一区精品| 国语对白做受69| 国产97在线视频| 欧美高跟鞋交xxxxxhd| 国产日韩一区在线| 中文字幕亚洲字幕| 精品久久久久久久久久久久久久| 欧美性猛交xxxxx免费看| 日韩中文第一页| 国产第一区电影| 亚洲天堂第二页| 亚洲精品黄网在线观看| 精品女厕一区二区三区| 亚洲欧美综合图区| 色婷婷综合久久久久中文字幕1| 高清欧美一区二区三区| 国内精品国产三级国产在线专| 亚洲免费影视第一页| 久久精品国产久精国产一老狼| 欧美激情xxxx性bbbb| 精品久久久国产精品999| 亚洲加勒比久久88色综合| 欧美日韩亚洲一区二区| 国产一区二区成人| 国产成人综合av| 国产精品av在线播放| 富二代精品短视频| 91久久精品视频| 亚洲视频视频在线| 亚洲最大的网站| 欧美激情久久久久久| 国产日产久久高清欧美一区| 亚洲国产精品va在看黑人| 欧美激情一区二区三区在线视频观看| 欧美另类极品videosbest最新版本| 精品国偷自产在线视频| 91精品国产综合久久香蕉922| 色婷婷**av毛片一区| 欧美激情久久久久久| 国产精品久久久999| 91高清免费在线观看| 欧美久久精品午夜青青大伊人| 在线成人中文字幕| 91精品国产高清久久久久久久久| 97在线免费观看| 中文字幕精品视频| 精品亚洲国产成av人片传媒| 亚洲精品欧美日韩专区| 精品国产一区av| 国产69久久精品成人看| 久久成人人人人精品欧| 欧美日韩国产区| 欧美成人午夜影院| 欧美午夜精品久久久久久浪潮| 久久久亚洲影院| 日韩美女主播视频| 亚洲精品美女在线观看| 亚洲欧洲成视频免费观看| 日韩欧美国产免费播放| 亚洲美女av在线播放| 国产一区二区香蕉| 亚洲成色www8888| 66m—66摸成人免费视频| 国产一区二区三区中文| 亚洲国产精品女人久久久| 91最新在线免费观看| 欧美一级视频免费在线观看| 91在线免费网站| 国产日韩欧美在线看| 欧美成人免费全部| 欧美日韩福利电影| 国产欧美日韩免费看aⅴ视频| 日韩一二三在线视频播| 亚洲网站在线观看| 欧洲日本亚洲国产区| 国产精品视频久久| 欧美在线视频免费| 国产免费一区二区三区在线能观看| 九色成人免费视频| 91精品国产自产在线老师啪| 久久久久久久久久久久久久久久久久av| 午夜精品久久久久久久99热浪潮| 欧美孕妇孕交黑巨大网站| 日韩高清电影好看的电视剧电影| 欧美成人午夜剧场免费观看| 欧美夜福利tv在线| 国产精品爽爽爽| 在线成人激情视频| 欧美性生交xxxxxdddd| 96pao国产成视频永久免费| 亚洲午夜国产成人av电影男同| 国产精品99免视看9| 插插插亚洲综合网| 欧美日韩精品在线播放| 精品久久久久久久久久ntr影视| 91在线观看欧美日韩| 欧美国产精品va在线观看| 亚洲精品久久在线| 亚洲级视频在线观看免费1级| 羞羞色国产精品| 精品免费在线观看| 国产精品国产自产拍高清av水多| 中文字幕亚洲图片| 91免费人成网站在线观看18| 欧美一级免费看| 91精品国产免费久久久久久| 久久久久亚洲精品成人网小说|