本文实例为大家分享了vue或css动画实现列表向上无缝滚动的具体代码,供大家参考,具体内容如下

方法一:vue的实现方法
- <div id="publishMain" class="b_list">
- ?<div id="publishMain1">
- ? ?<div class="b_item" v-for="(ac,acindex) in activityList" :key="acindex">
- ? ? ?<!-- 循环的内容 -->
- ? ?</div>
- ?</div>
- ?<div id="publishMain2"></div>
- </div>
js
- <script>
- export default {
- ? ? data(){
- ? ? ? ? return{
- ? ? ? ? ? ? timer: null,
- ? ? ? ? ? ? activityList:[]
- ? ? ? ? }
- ? ? },
- ? ? mounted() {
- ? ? ? ? this.$nextTick(() => {
- ? ? ? ? ? this.rollUp();
- ? ? ? ? });
- ? ? },
- ? ? beforeDestroy() {
- ? ? ? ? this.timer = null;
- ? ? ? ? clearInterval(this.timer);
- ? ? },
- ?
- ? ? methods: {
- ? ? ? ? /*向上轮播*/
- ? ? ? ? rollUp() {
- ? ? ? ? let ul1 = document.getElementById("publishMain1");
- ? ? ? ? let ul2 = document.getElementById("publishMain2");
- ? ? ? ? let box = document.getElementById("publishMain");
- ? ? ? ? ul2.innerHTML = ul1.innerHTML;
- ? ? ? ? box.scrollTop = 0;
- ? ? ? ? function rollStart() {
- ? ? ? ? ? ? if (box.scrollTop >= ul1.scrollHeight) {
- ? ? ? ? ? ? box.scrollTop = 0;
- ? ? ? ? ? ? } else {
- ? ? ? ? ? ? box.scrollTop++;
- ? ? ? ? ? ? }
- ? ? ? ? }
- ? ? ? ? this.timer = setInterval(rollStart, 50);
- ? ? }
- ? }
- }
- </script>
css
- .b_list{
- ? ?height: 19rem;
- ? ?overflow: hidden;
- }
方法二:纯css动画
html
- <div class="b_list">
- ? <div class="b_scroll">
- ? ? <div class="b_item" v-for="(ac,acindex) in activityList" :key="acindex">
- ? ? ? <!-- 循环的内容 -->
- ? ? </div>
- ? </div>
- </div>
css
- @keyframes scrollTop {
- ? 0% {
- ? ? -webkit-transform: translate3d(0, 0, 0);
- ? ? transform: translate3d(0, 0, 0);
- ? }
- ? 100% {
- ? ? -webkit-transform: translate3d(0, -300px, 0);
- ? ? transform: translate3d(0, -300px, 0);
- ? }
- }
- .b_list{
- ? height: 19rem;
- ? overflow: hidden;
- }
- ?
- .b_scroll{
- ? ?-webkit-animation: 10s scrollTop linear infinite normal;
- ? ?animation: 10s scrollTop linear infinite normal;
- }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。