zoukankan      html  css  js  c++  java
  • vue or react mvvm里的文字上下滚动

    1.jQuery 时候实现 上下滚动很简单,基本上一个animateTop就可以了

    2. vue等MVVM就有些麻烦了,因为不推荐操作DOM,专注于数据

    我们可以使用

    css3 transition: top 0.5s;  和改变列表的位置来实现上下文无缝滚动。下图顶部的黄字应该是滚动的(不会弄gif图~)
    效果:

    代码如下:

    <template>
    <div>
           <div class="noticeWrap" v-if="this.data.messageList.length>0">
                <div class="notice">
                    <ul :class="animate? 'anim':''" :style="{top}">                    
                        <li v-for="(item,index) in data.messageList" :key="index"><a @click="alertMessage(index)">{{item.alertMessageTitle}}</a></li>                                       
                    </ul>
                </div>
                
            </div>
        
    
    
           
    
    </div>
    </template>
    
    <script>
    
      export default {
        name: 'app',
        data(){
          return{
               
                data:{
          
    
                    messageList:[]
    /*可以用假数据测试
            "messageList":[
                {
                    "alertMessageTitle":"民生银行系统维护, 首付出发暂停民生银行卡还款1",
                    "alertMessageContent":"1尊敬的首付出发用户:由于民生银行目前处于系统维护中,维护期间首付出发支付、还款业务暂不支持民生银行卡,为保证您的还款不受影响,请使用其他银行卡进行主动还款,给您带来不便,敬请谅解~"
                },
                {
                    "alertMessageTitle":"民生银行系统维护, 首付出发暂停民生银行卡还款2",
                    "alertMessageContent":"2尊敬的首付出发用户:由于民生银行目前处于系统维护中,维护期间首付出发支付、还款业务暂不支持民生银行卡,为保证您的还款不受影响,请使用其他银行卡进行主动还款,给您带来不便,敬请谅解~"
                },
                {
                    "alertMessageTitle":"民生银行系统维护, 首付出发暂停民生银行卡还款3",
                    "alertMessageContent":"3尊敬的首付出发用户:由于民生银行目前处于系统维护中,维护期间首付出发支付、还款业务暂不支持民生银行卡,为保证您的还款不受影响,请使用其他银行卡进行主动还款,给您带来不便,敬请谅解~"
                },
                {
                    "alertMessageTitle":"民生银行系统维护, 首付出发暂停民生银行卡还款4",
                    "alertMessageContent":"4尊敬的首付出发用户:由于民生银行目前处于系统维护中,维护期间首付出发支付、还款业务暂不支持民生银行卡,为保证您的还款不受影响,请使用其他银行卡进行主动还款,给您带来不便,敬请谅解~"
                }                        
            ]
                */    
    
                },
    
                activeIndex: 0,
                animate:true,
    
    
                
    
          }
        },    
        created(){          
            this.getIndex();
    
        },
        computed: {
            top() {
                return - this.activeIndex * 30 + 'px';  //每次动画改变这个列表的位置
            }
       },
    
        methods:{
             getIndex(){
                       //你的ajax code返回结果
                        if(response.data.success){ 
                                //console.log( this.data)
                                this.data=response.data.data;
                                //数据是后台动态读取,所以应该在数据可用时再弄动画,你也可以直接把假数据放在 messageList里
                                if(this.data.messageList.length>0){
                                    this.scroll();
                                }
                            
                        }else{
                            alert(response.data.msg);
                        }
                        
                   
             },
    
             scroll(){
                   let intval=setInterval(()=> {               
                        if(this.activeIndex < this.data.messageList.length-1) {
                            this.activeIndex += 1;                   
                        } else {
                            this.activeIndex = 0;                   
                        }
          
                    }, 1000);
    
                    if(this.data.messageList.length==0){
                        this.activeIndex = 0;                   
                        clearInterval(intval);
                    }
             }
       
           
        }
       
      }
    </script>
    
    <style>
        .anim{
            transition: top 0.5s;
            position: relative;       
        }
    
    </style>
    

      

  • 相关阅读:
    Java核心技术 卷一 笔记四 库类的直接使用
    Java核心技术 卷一 笔记三 大数值及数组
    Java核心技术 卷一 笔记2 字符串的复制
    Java核心技术 卷一 笔记1
    修改css 样式后, hover事件 不生效
    修改 element ui input 输入框 样式不生效问题
    css3 计算属性
    Vue3 改动系列
    浏览器实现,向下滑动 鼠标滚轮,页面横向移动
    linux ceont0s7 vue 打包压缩图片 一直报错
  • 原文地址:https://www.cnblogs.com/yuri2016/p/8269867.html
Copyright © 2011-2022 走看看