JS实现头像循环滚动示例
更新时间:2023年11月29日 08:49:51 作者:HUMILITY
这篇文章主要为大家介绍了JS实现头像循环滚动示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
背景
需要用户头像(3个)右边部分叠层展示,并且支持循环滚动
实现
改变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, // 定义位置数组 idArr: ['first', 'second', 'right', 'last'] } }, mounted () { this.init() }, destroyed () { if (this.timer) { clearInterval(this.timer) } }, methods: { init () { // 初始化图片位置,根据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() // 定时器图片轮播 this.timer = setInterval(this.next, 1000) }, next () { // 将位置数组的最后一个元素删除,并将删除元素添加到位置数组第一个 this.idArr.unshift(this.idArr.pop()) this.initialize() }, // 将位置数组元素作为id赋值给img,达到轮播效果 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%; } } } //设置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实现头像循环滚动示例的详细内容,更多关于JS头像循环滚动的资料请关注脚本之家其它相关文章!
最新评论