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头像循环滚动的资料请关注脚本之家其它相关文章!

相关文章

  • 让任务管理器中的CPU跳舞的js代码

    让任务管理器中的CPU跳舞的js代码

    下面的代码就是利用js控制cpu的占有率,实现时高时低效果
    2008-11-11
  • js获取当前月的第一天和最后一天的小例子

    js获取当前月的第一天和最后一天的小例子

    这篇文章主要介绍了js获取当前月的第一天和最后一天的小例子,有需要的朋友可以参考一下
    2013-11-11
  • javascript addBookmark 加入收藏 多浏览器兼容

    javascript addBookmark 加入收藏 多浏览器兼容

    不错的加入收藏代码,加入了对一些常见浏览器的判断,更好的体现用户体验,兼容了ie,firefox.
    2009-08-08
  • JS小游戏之宇宙战机源码详解

    JS小游戏之宇宙战机源码详解

    这篇文章主要介绍了JS小游戏之宇宙战机源码,是一款非常经典的游戏源码,包含了游戏设计中比较常见的逻辑处理,本文附带了该游戏的完整源码,需要的朋友可以参考下
    2014-09-09
  • 微信小程序时间轴实现方法示例

    微信小程序时间轴实现方法示例

    这篇文章主要介绍了微信小程序时间轴实现方法,结合实例形式分析了微信小程序wx:for语句使用与时间轴纵向布局相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • JavaScript之DOM_动力节点Java学院整理

    JavaScript之DOM_动力节点Java学院整理

    由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。始终记住DOM是一个树形结构。
    2017-07-07
  • 深入了解Hybrid App技术的相关知识

    深入了解Hybrid App技术的相关知识

    这篇文章主要介绍了深入了解Hybrid App技术的相关知识,Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具" Native App良好用户交互体验的优势 "和" Web App跨平台开发的优势 ",需要的朋友可以参考下
    2019-07-07
  • Bootstrap菜单按钮及导航实例解析

    Bootstrap菜单按钮及导航实例解析

    这篇文章主要介绍了Bootstrap菜单按钮及导航的相关资料,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-09-09
  • JS逆向之 webpack 打包站点实战原理分享

    JS逆向之 webpack 打包站点实战原理分享

    本文主要介绍了JS逆向之webpack打包站点实战原理分享,webpack是前端程序员用来进行打包JS的技术,打包之后的代码特征非常明显,更多相关知识需要的小伙伴可以参考下面文章详细内容
    2022-06-06
  • js实现本地持久化存储登录注册

    js实现本地持久化存储登录注册

    这篇文章主要为大家详细介绍了js实现本地持久化存储登录注册,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论