摘要:無(wú)縫輪播注意了只能獲取有內(nèi)聯(lián)樣式的標(biāo)簽的,否則為空。應(yīng)該是涉及到了作用域鏈的知識(shí)點(diǎn)。每一步移動(dòng)的距離是向右動(dòng)畫(huà)函數(shù)當(dāng)前圖片的位置效果圖微信公眾號(hào)天字一等
html:
pre next
css:
.container{ position: relative; width:500px; height: 330px; overflow: hidden; } .carousel-image{ position: absolute; width:3000px; }
js:
let pre = document.getElementById("pre"); let next = document.getElementById("next"); let carouselImage = document.getElementsByClassName("carousel-image"); console.log(carouselImage[0].style.left) //注意了:.style.left只能獲取有內(nèi)聯(lián)樣式的標(biāo)簽的left,否則為空。.offsetLeft才可以獲取標(biāo)簽的left //向右滑動(dòng) next.onclick = function () { animate(-500); } pre.onclick = function () { animate(500); } //移動(dòng)函數(shù) function animate(offset){ //為什么第二次go()函數(shù)調(diào)用時(shí),offset為NaN var leftDistance = parseInt(carouselImage[0].style.left) + offset; var newoffset = offset; var speed = newoffset/20; //注意:如果這行代碼放在go()函數(shù)里面,go()第二次執(zhí)行的時(shí)候newoffset為NaN,導(dǎo)致定時(shí)器失效。應(yīng)該是涉及到了作用域鏈的知識(shí)點(diǎn)。 每一步移動(dòng)的距離 speed>0是向右 //動(dòng)畫(huà)函數(shù) function go(newoffset){ currentLeft = carouselImage[0].style.left; //當(dāng)前圖片的位置 if(speed > 0 && leftDistance > parseInt(currentLeft) || speed < 0 && leftDistance < parseInt(currentLeft)){ carouselImage[0].style.left = parseInt(currentLeft) + speed + "px"; setTimeout(go,10); }else if(leftDistance < -1500){ carouselImage[0].style.left = -500 + "px"; }else if(leftDistance > -500){ carouselImage[0].style.left = -1500 + "px"; } } go(newoffset); }
效果圖
微信公眾號(hào):天字一等
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/109568.html
摘要:輪播圖插件前言寫(xiě)這個(gè)插件的原因前段時(shí)間準(zhǔn)備用加上網(wǎng)易云的接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。目前主要實(shí)現(xiàn)了無(wú)縫輪播,自動(dòng)播放,端左右按鈕點(diǎn)擊切換,移動(dòng)端手勢(shì)滑動(dòng)切換。 輪播圖插件(Broadcast.js) 前言:寫(xiě)這個(gè)插件的原因 前段時(shí)間準(zhǔn)備用vue加上網(wǎng)易云的nodejs接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。因?yàn)橄胱约簩?xiě)一遍所有的代碼以及加固自己的flex布局,所以沒(méi)有使用UI組件。在輪播圖部分,...
摘要:輪播圖插件前言寫(xiě)這個(gè)插件的原因前段時(shí)間準(zhǔn)備用加上網(wǎng)易云的接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。目前主要實(shí)現(xiàn)了無(wú)縫輪播,自動(dòng)播放,端左右按鈕點(diǎn)擊切換,移動(dòng)端手勢(shì)滑動(dòng)切換。 輪播圖插件(Broadcast.js) 前言:寫(xiě)這個(gè)插件的原因 前段時(shí)間準(zhǔn)備用vue加上網(wǎng)易云的nodejs接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。因?yàn)橄胱约簩?xiě)一遍所有的代碼以及加固自己的flex布局,所以沒(méi)有使用UI組件。在輪播圖部分,...
摘要:輪播圖插件前言寫(xiě)這個(gè)插件的原因前段時(shí)間準(zhǔn)備用加上網(wǎng)易云的接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。目前主要實(shí)現(xiàn)了無(wú)縫輪播,自動(dòng)播放,端左右按鈕點(diǎn)擊切換,移動(dòng)端手勢(shì)滑動(dòng)切換。 輪播圖插件(Broadcast.js) 前言:寫(xiě)這個(gè)插件的原因 前段時(shí)間準(zhǔn)備用vue加上網(wǎng)易云的nodejs接口,模擬網(wǎng)易云音樂(lè)移動(dòng)端。因?yàn)橄胱约簩?xiě)一遍所有的代碼以及加固自己的flex布局,所以沒(méi)有使用UI組件。在輪播圖部分,...
摘要:起因現(xiàn)在自學(xué)前端中,學(xué)到移動(dòng)端,在做一個(gè)項(xiàng)目,課程開(kāi)始用原生的方法寫(xiě)輪播圖無(wú)縫,但是視頻講的是面向過(guò)程的方式,現(xiàn)在自己用面向?qū)ο蟮姆绞綄?xiě)一下。 ## 起因 ## 現(xiàn)在自學(xué)前端中,學(xué)到移動(dòng)端,在做一個(gè)項(xiàng)目,課程開(kāi)始用原生的方法寫(xiě)輪播圖(無(wú)縫),但是視頻講的是面向過(guò)程的方式,現(xiàn)在自己用面向?qū)ο蟮姆绞綄?xiě)一下。 ## 上代碼 ## html的代碼 分類(lèi) ...
摘要:實(shí)現(xiàn)原理無(wú)縫滾動(dòng)預(yù)處理為了無(wú)縫滾動(dòng),在傳進(jìn)來(lái)的數(shù)組首部增加末尾元素,在尾部追加首元素看圖數(shù)據(jù)綁定視圖為當(dāng)前顯示的輪播圖索引,然后只需要對(duì)進(jìn)行操作,監(jiān)聽(tīng)的變化,一旦到達(dá)了邊界就重置,顯示出對(duì)應(yīng)的圖片。 該文章請(qǐng)對(duì)應(yīng)源碼閱讀,github源碼地址,DEMO使用地址,線上DEOM展示。 做一個(gè)vue基礎(chǔ)組件系列,使用vue以最簡(jiǎn)潔的方式實(shí)現(xiàn)常用組件,可用于快速二次定制化開(kāi)發(fā)。 (??????...
摘要:實(shí)現(xiàn)原理無(wú)縫滾動(dòng)預(yù)處理為了無(wú)縫滾動(dòng),在傳進(jìn)來(lái)的數(shù)組首部增加末尾元素,在尾部追加首元素看圖數(shù)據(jù)綁定視圖為當(dāng)前顯示的輪播圖索引,然后只需要對(duì)進(jìn)行操作,監(jiān)聽(tīng)的變化,一旦到達(dá)了邊界就重置,顯示出對(duì)應(yīng)的圖片。 該文章請(qǐng)對(duì)應(yīng)源碼閱讀,github源碼地址,DEMO使用地址,線上DEOM展示。 做一個(gè)vue基礎(chǔ)組件系列,使用vue以最簡(jiǎn)潔的方式實(shí)現(xiàn)常用組件,可用于快速二次定制化開(kāi)發(fā)。 (??????...
閱讀 2088·2021-11-23 10:13
閱讀 2794·2021-11-09 09:47
閱讀 2742·2021-09-22 15:08
閱讀 3321·2021-09-03 10:46
閱讀 2235·2019-08-30 15:54
閱讀 916·2019-08-28 18:09
閱讀 2431·2019-08-26 18:26
閱讀 2346·2019-08-26 13:48