1. 程式人生 > 其它 >vue結合element ui實現文字訊息上下無縫滾動切換

vue結合element ui實現文字訊息上下無縫滾動切換

技術標籤:VueElement UIvueelementui

最近專案裡需要個訊息翻滾一條條出現的效果,如下圖:
在這裡插入圖片描述
正在用原生js操作的時候,突然想起element ui有個走馬燈(Carousel),這個走馬燈可以實現前端比較常用的輪播效果,那肯定也能實現這個功能訊息無縫翻滾出現的功能。
話不多說,下面放程式碼:
html部分:

<!--我這個需求是有訊息時才會讓這個功能顯示,所以使用了v-if-->
<div class="bs-sysMsg" v-if="systemMsg.length > 0">
    <
i
class="el-alert__icon el-icon-warning">
</i> <div class="msg__content"> <el-carousel height="20px" direction="vertical" indicator-position="none" :autoplay="true"> <el-carousel-item v-for="
item in systemMsg"
:key="item.id">
<a href="javascript:void(0)" class="item">{{item.title}}</a> </el-carousel-item> </el-carousel> </div> </div>

解釋下上面的重點:
1、element ui的走馬燈direction 預設為 horizontal(橫向切換),通過設定 direction 為 vertical 來讓走馬燈在垂直方向上切換;

2、指示器的位置indicator-position設定為none,不顯示指示器;
3、設定autoplay為true,讓自動切換,可不設定,預設就是true。

data部分:

data(){
	return{
		// 滾屏訊息
        systemMsg: [
            {id:1,title:'入主白宮近10日 拜登做了10件大事'},
            {id:2,title:'全民帶貨?小紅書外鏈淘寶許可權將大範圍開放'},
            {id:3,title:'賈躍亭FF將在納斯達克上市 股票程式碼為FFIE'}
        ],
	}
}

好人做到底,再把css部分貼上來,直接可完美測試
css部分:

/*輪翻訊息*/
.bs-sysMsg {
    position: relative;
    display: flex;
    width: 100%;
    padding: 8px 12px;
    margin-bottom: 10px;
    border-radius: 2px;
    color: #e6a23c;
    background-color: #fdf6ec;
    overflow: hidden;
    opacity: 1;
    align-items: center;
    transition: opacity .2s;
}
.bs-sysMsg .msg__content {
    display: table-cell;
    padding: 0 8px;
    width: 100%;
}
.bs-sysMsg .msg__content a.item {
    color: #e6a23c;
    font-size: 14px;
    opacity: 0.75;
}
.bs-sysMsg .msg__content a.item:hover{text-decoration: underline;}

好了,就上面這麼多,如果點選訊息還有詳情,可以給a標籤加連結,跳轉到詳情頁面。
有沒有超簡單,什麼一大對js控制都弱爆了。

新部落格,堅持原創碼字,辛苦分享給點個贊鼓勵下可好。