recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment faire défiler la liste des actualités de haut en bas dans Vue

Joué en boucle

C'est la partie données

data() {
    return {
      prizeList: [
        { name: 0 },
        { name: 1 },
        { name: 2 },
        { name: 3 },
        { name: 4 }
      ]
    }
  }

C'est mon code actuel, il ne peut que faire des cycles et changer, il n'y a pas d'effet d'animation

setInterval(async () => {
    let first = this.prizeList.splice(0, 1)
    this.prizeList.push(...first)
}
淡淡烟草味淡淡烟草味2736 Il y a quelques jours840

répondre à tous(3)je répondrai

  • 世界只因有你

    世界只因有你2017-05-19 10:45:20

    Vous pouvez changer d'avis et utiliser la transition pour y parvenir

    <p class="scroll-wrap">
        <ul class="scroll-content" :style="{ top }">
            <li v-for="item in prizeList">{{item.name}}</li >  
        </ul>
    </p>
    export default {
      data () {
        return {
          prizeList: [
            { name: 0 },
            { name: 1 },
            { name: 2 },
            { name: 3 },
            { name: 4 }
          ],
          activeIndex: 0
        }
      },
    
      computed: {
        top() {
          return - this.activeIndex * 50 + 'px';
        }
      },
    
      mounted() {
        setInterval(_ => {
          if(this.activeIndex < this.prizeList.length) {
            this.activeIndex += 1;
          } else {
            this.activeIndex = 0;
          }
        }, 1000);
      }
    };
    .scroll-wrap{
      width: 200px;
      height: 50px;
      border: 1px solid blue;
      overflow: hidden;
    }
    
    .scroll-content{
      position: relative;
      transition: top 0.5s;
    
      li{
        line-height: 50px;
        text-align: center;
      }
    }

    Effet

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:45:20

    Peut être implémenté à l'aide du composant de transition

    répondre
    0
  • 怪我咯

    怪我咯2017-05-19 10:45:20

    • documentation officielle vue

    • Bibliothèque d'effets d'animation

    Très simple à utiliser :

    import 'animate'
    
    <transition
      name="custom-classes-transition"
      enter-active-class="animated bounceIn" //animate 提供的动画效果
      leave-active-class="animated bounceOutRight"
    >
    ... //要使用动画效果的内容
    </transition>

    répondre
    0
  • Annulerrépondre