ホームページ  >  記事  >  ウェブフロントエンド  >  テキストを 1 行上にスクロールする効果を実現する方法 (コードは添付されています)

テキストを 1 行上にスクロールする効果を実現する方法 (コードは添付されています)

不言
不言オリジナル
2018-08-06 14:33:013229ブラウズ

この記事では、テキストを 1 行スクロールする方法を紹介します (コード付き)。必要な方は参考にしていただければ幸いです。

現在イベント ページを作成中ですが、受賞の発表を表示するには 1 行のテキストを上にスクロールする必要があります。

効果は次のとおりです:

テキストを 1 行上にスクロールする効果を実現する方法 (コードは添付されています)

これ以上の手間をかけずに、コードを直接下に貼り付けるだけです。

html コードは次のとおりです:

 <div class="notice">
   <img src="./img/notice.png" alt="">
   <div class="wrap">
     <ul :style="{top: noticeTop + &#39;rem&#39;}" :class="{transitionTop: isActive}">
       <li v-for="(item, index) in noticeList" :key="index">{{item.phone}}抽中{{item.prizeName}}</li>
       <li v-if="noticeLen > 0">{{noticeList[0].phone}}抽中{{noticeList[0].prizeName}}</li>
       <li v-if="noticeLen === 1">{{noticeList[0].phone}}抽中{{noticeList[0].prizeName}}</li>
       <li v-if="noticeLen === 0">获奖公告</li>
     </ul>
   </div>
 </div>

less コードは次のとおりです:

 .notice{
     display: flex;
     justify-content: center;
     padding-bottom: .26rem;
     img{
       width: .3rem;
       height: .24rem;
     }
     .wrap{
       position: relative;
       height:.3rem;
       overflow: hidden;
       margin-left: .15rem;
       font-size: .24rem;
       color: #391b03;
     }
     ul{
       position: relative;
       top: -.3rem;
       li{
         height: .3rem;
         line-height: .3rem;
       }
     }
     .transitionTop{
       transition: top 200ms ease-in-out;
     }
 }

js コードは次のとおりです:

 // data下
 noticeTop: 0, // 公告top值
 isActive:true, // 是否显示transitionTop动画
 timer: null, // 公告滚动定时器
 noticeList: [
   {
     phone:'135****1234',
     prizeName:'50元还款券'
   },
   {
     phone:'135****1234',
     prizeName:'60元还款券'
   },
   {
     phone:'135****1234',
     prizeName:'70元还款券'
   }
 ], // 公告列表
 
 // computed下
 noticeLen(){ // 公告列表长度
     return this.noticeList.length;
 }
 //methods下
 noticeScroll(){// 公告滚动,定时改变公告的top值
     if(this.noticeLen > 0){
       let index =1,
           len = this.noticeLen === 1 ? 3 : (this.noticeLen + 1);
       this.timer = setInterval(() => {
         this.isActive = true;
         this.noticeTop = -3 * index / 10;
         index ++;
         if(index === len){// 滚动到底部时返回
           let delayTime = setTimeout(() => {
             this.isActive = false;
             this.noticeTop = 0;
             index = 1;
             clearTimeout(delayTime);
           }, 1000);
         }
       }, 3000);
     }
 }
 //调用
 this.noticeScroll();

以下のことに注意してください:
1. vueの構文
2をベースにしています。最後までスクロールしてから最後から最初に戻るために、一番下までスクロールして戻るときに遅延が追加されます。                                      

関連記事 推奨: ページ スクロール アニメーションの特殊効果を実現するにはどうすればよいですか?

css3を使って美しいボタンを作成するにはどうすればよいですか?

以上がテキストを 1 行上にスクロールする効果を実現する方法 (コードは添付されています)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。