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

相关文章

  • 基于WebUploader的文件上传js插件

    基于WebUploader的文件上传js插件

    这篇文章主要为大家详细介绍了基于WebUploader的文件上传js插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • JavaScript DOM节点操作方式全面讲解

    JavaScript DOM节点操作方式全面讲解

    DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法。整个浏览器网页就是一个Dom树形结构,这篇文章主要介绍了JavaScript DOM节点操作方式
    2022-10-10
  • JavaScrip调试技巧之断点调试

    JavaScrip调试技巧之断点调试

    本篇文章给大家介绍javascript调试技巧之断点调试,主要介绍使用Firebug、debugger、debugger在程序中加入断点调试等,但是这些调试技巧都不借助于浏览器之外的工具,其他浏览器主要是opera、safari、chrome和ie8,感兴趣的小伙伴一起看看吧
    2015-10-10
  • javascript算法学习(直接插入排序)

    javascript算法学习(直接插入排序)

    假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。
    2011-04-04
  • 原生js实现水平方向无缝滚动

    原生js实现水平方向无缝滚动

    这篇文章主要为大家详细介绍了原生js实现水平方向无缝滚动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • javascript实现点击按钮切换图片

    javascript实现点击按钮切换图片

    这篇文章主要为大家详细介绍了javascript实现点击按钮切换图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • JS+canvas画一个圆锥实例代码

    JS+canvas画一个圆锥实例代码

    本篇文章给大家讲解html中用canvas函数配合JS画出一个圆锥形的图形实例,有需要的朋友学习测试下吧。
    2017-12-12
  • 跟我学习javascript的隐式强制转换

    跟我学习javascript的隐式强制转换

    跟我学习javascript的隐式强制转换,感兴趣的小伙伴们可以学习一下
    2015-11-11
  • 原生js实现日期联动

    原生js实现日期联动

    日期联动算是一个比较常见的功能了,随便度娘一下,你就能找到N多代码,今天给大家介绍的是个人比较常用,代码很简洁,高效,这里推挤给大家。
    2015-01-01
  • JavaScript建立一个语法高亮输入框实现思路

    JavaScript建立一个语法高亮输入框实现思路

    通常网站自带的textarea编辑器不能满足我们的需求比如高亮显示代码等,在这篇文章中,我将使用JavaScript库ACE来创建一个输入框效果,该脚本允许开发人员创建支持语法高亮的输入框,感兴趣的你可不要错过了哈
    2013-02-02

最新评论