JS實(shí)現(xiàn)頭像循環(huán)滾動(dòng)示例
背景
需要用戶頭像(3個(gè))右邊部分疊層展示,并且支持循環(huán)滾動(dòng)

實(shí)現(xiàn)
改變dom上綁定的樣式id,論循替換
<template>
<div class="slider-headimg">
<div class="out">
<div class="inner">
<div class="img" ref="headimgList" v-for="(item,index) in sliderHeadimgList" :key="index">
<img :src="item.headImgUrl">
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
sliderHeadimgList: {
type: Array,
default: () => []
}
},
data () {
return {
timer: null,
// 定義位置數(shù)組
idArr: ['first', 'second', 'right', 'last']
}
},
mounted () {
this.init()
},
destroyed () {
if (this.timer) {
clearInterval(this.timer)
}
},
methods: {
init () {
// 初始化圖片位置,根據(jù)id不同,初始化樣式
var img = this.$refs.headimgList
img[0].id = this.idArr[0]
img[1].id = this.idArr[1]
img[3].id = this.idArr[3]
for (let i = 0; i < (this.sliderHeadimgList.length - 4); i++) {
this.idArr.splice(3, 0, 'left')
}
this.initialize()
// 定時(shí)器圖片輪播
this.timer = setInterval(this.next, 1000)
},
next () {
// 將位置數(shù)組的最后一個(gè)元素刪除,并將刪除元素添加到位置數(shù)組第一個(gè)
this.idArr.unshift(this.idArr.pop())
this.initialize()
},
// 將位置數(shù)組元素作為id賦值給img,達(dá)到輪播效果
initialize () {
var img = this.$refs.headimgList
for (var i = 0; i < img.length; i++) {
img[i].id = this.idArr[i]
}
}
}
}
</script>
<style lang="less">
.slider-headimg {
position: relative;
display: flex;
align-items: center;
width: 200px;
padding-bottom: 55px;
margin-right: 10px;
}
.out {
width: 100%;
height: 100%;
position: relative;
.inner {
width: 100%;
.img {
width: 48px;
height: 48px;
position: absolute;
transition: 0.3s;
display: flex;
border-radius: 50%;
border: 1px solid #fff;
img {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
}
//設(shè)置id樣式
#last {
display: flex;
transform: translateX(48px);
z-index: 3;
opacity: 1;
}
#first {
display: flex;
transform: translateX(96px);
z-index: 2;
opacity: 1;
}
#second {
display: flex;
transform: translateX(144px);
z-index: 1;
opacity: 1;
}
#left {
display: none;
transform: translateX(-48px);
z-index: 1;
opacity: 0;
}
#right {
display: flex;
transform: translateX(240px);
z-index: 1;
opacity: 0;
}
}
</style>以上就是JS實(shí)現(xiàn)頭像循環(huán)滾動(dòng)示例的詳細(xì)內(nèi)容,更多關(guān)于JS頭像循環(huán)滾動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript DOM節(jié)點(diǎn)操作方式全面講解
DOM(Document Object Model 文檔對(duì)象模型)定義了訪問(wèn)和操作文檔的標(biāo)準(zhǔn)方法。整個(gè)瀏覽器網(wǎng)頁(yè)就是一個(gè)Dom樹形結(jié)構(gòu),這篇文章主要介紹了JavaScript DOM節(jié)點(diǎn)操作方式2022-10-10
JavaScrip調(diào)試技巧之?dāng)帱c(diǎn)調(diào)試
本篇文章給大家介紹javascript調(diào)試技巧之?dāng)帱c(diǎn)調(diào)試,主要介紹使用Firebug、debugger、debugger在程序中加入斷點(diǎn)調(diào)試等,但是這些調(diào)試技巧都不借助于瀏覽器之外的工具,其他瀏覽器主要是opera、safari、chrome和ie8,感興趣的小伙伴一起看看吧2015-10-10
javascript算法學(xué)習(xí)(直接插入排序)
假設(shè)待排序的記錄存放在數(shù)組R[1..n]中。初始時(shí),R[1]自成1個(gè)有序區(qū),無(wú)序區(qū)為R[2..n]。從i=2起直至i=n為止,依次將R[i]插入當(dāng)前的有序區(qū)R[1..i-1]中,生成含n個(gè)記錄的有序區(qū)。2011-04-04
原生js實(shí)現(xiàn)水平方向無(wú)縫滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)水平方向無(wú)縫滾動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
javascript實(shí)現(xiàn)點(diǎn)擊按鈕切換圖片
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)點(diǎn)擊按鈕切換圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
跟我學(xué)習(xí)javascript的隱式強(qiáng)制轉(zhuǎn)換
跟我學(xué)習(xí)javascript的隱式強(qiáng)制轉(zhuǎn)換,感興趣的小伙伴們可以學(xué)習(xí)一下2015-11-11
原生js實(shí)現(xiàn)日期聯(lián)動(dòng)
日期聯(lián)動(dòng)算是一個(gè)比較常見(jiàn)的功能了,隨便度娘一下,你就能找到N多代碼,今天給大家介紹的是個(gè)人比較常用,代碼很簡(jiǎn)潔,高效,這里推擠給大家。2015-01-01
JavaScript建立一個(gè)語(yǔ)法高亮輸入框?qū)崿F(xiàn)思路
通常網(wǎng)站自帶的textarea編輯器不能滿足我們的需求比如高亮顯示代碼等,在這篇文章中,我將使用JavaScript庫(kù)ACE來(lái)創(chuàng)建一個(gè)輸入框效果,該腳本允許開發(fā)人員創(chuàng)建支持語(yǔ)法高亮的輸入框,感興趣的你可不要錯(cuò)過(guò)了哈2013-02-02

