使用anime.js实现列表滚动轮播

官网:https://animejs.com/
html

<div id="slide1">
    <div class="weather-item" v-for="item in weatherList">
        <div><img src="../../images/hdft/position.png" alt="">{{item.body.cityInfo.cityName | city}}</div>
        <div class="left-bd"><span>{{item.body.weather.wc_12h[0] | weather}}</span><span>{{item.body.weather.wd[0] | wind}}</span><span>{{item.body.weather.ws[0]}}m/s</span></div>
        <div><img src="../../images/hdft/temperature.png" alt="">{{Number(item.body.weather.bcmi[0]).toFixed(1)}}℃</div>
    </div>
</div>

css
这只是我这里所使用的样式,实际设置好height即可,没有借鉴意义

.con-left{
    width: 3550px;
    overflow: hidden;//父元素overflow hidden
}
.weather-item{
    display: flex;
    height: 90px;//设置height
}
img{
    vertical-align: middle;
    margin-right: 50px;
}
.weather-item div{
    width: 700px;
    text-align: center;
}
.weather-item .left-bd{
    border-left: 8px solid #FFF;
    border-right: 8px solid #FFF;
    display: flex;
    justify-content: space-around;
    padding: 0 80px;
    box-sizing: border-box;
    width: 1000px;
}
.weather-item div{
    width: 700px;
    text-align: center;
}
.weather-item .left-bd{
    border-left: 8px solid #FFF;
    border-right: 8px solid #FFF;
    display: flex;
    justify-content: space-around;
    padding: 0 80px;
    box-sizing: border-box;
    width: 1000px;
}

js

//请求完接口以后执行_createTableAnime(数据,dom)
this._createTableAnime(this.weatherList, 'slide1')

_createTableAnime(data, dom) {
    let keyframes = [];
    for (let i = 1; i < data.length; i++) {
        keyframes.push({
            translateY: -90 * i,//这里就是设置的高度
            duration: 1000,//滚动用时
            delay: 2000//停留多久
        });
    }
    if (this.slide1Anime) {
        this.slide1Anime.pause();
        document.getElementById(dom).style.transform = 'translateY(0px)'
        this.slide1Anime = null;
    }
    this.slide1Anime = anime({
        targets: document.getElementById(dom),
        keyframes: keyframes,
        easing: 'linear',
        autoplay: true,
        loop: true,
        endDelay: 2000,
    })
},

这样页面就会正常开始滚动了,而且放大缩小不会受影响,而我们用原生的scrollTop++方式在页面缩小比例较大的时候就不能正常滚动了,所以这算是替代scrollTop的一种方式吧。
在这里插入图片描述

相关推荐

  1. VUE +element ui 表格实现数据滚动效果

    2024-03-30 06:04:01       33 阅读
  2. react 字滚动

    2024-03-30 06:04:01       34 阅读
  3. Flutter 使用flutter_swiper_null_safety 实现

    2024-03-30 06:04:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 06:04:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 06:04:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 06:04:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 06:04:01       20 阅读

热门阅读

  1. 指针的运算

    2024-03-30 06:04:01       18 阅读
  2. 修改Docker Gitlab root 的密码

    2024-03-30 06:04:01       20 阅读
  3. 2023年欧亚地区网络安全态势综述

    2024-03-30 06:04:01       17 阅读
  4. IDEA:找不到String类、主类

    2024-03-30 06:04:01       17 阅读
  5. IDEA 打包jar

    2024-03-30 06:04:01       17 阅读
  6. idea常用的快捷键总结:

    2024-03-30 06:04:01       13 阅读
  7. ReactNative实现图片上传功能(兼容安卓和ios)

    2024-03-30 06:04:01       17 阅读
  8. 基于卷积神经网络的物体检测技术

    2024-03-30 06:04:01       15 阅读
  9. 如何利用ChatGPT提升学术论文写作效率

    2024-03-30 06:04:01       19 阅读
  10. 零基础机器学习(6)之岭回归与套索回归(正则化)

    2024-03-30 06:04:01       17 阅读
  11. gdb | 实战调试死循环

    2024-03-30 06:04:01       11 阅读