一、 第一种方式
data(){
return{
animate:false,
list:[{
noticeTitle:'今天是个好日子!'
},{
noticeTitle:'周三意味着......'
}{
noticeTitle:'在上2天班就双休啦!'
} ]
}
},
created: {
this.timer = setInterval(this.showMarquee, 1500)
},
methods:{
showMarquee: function () {//字体滚动
this.animate = true
setTimeout(() => {
this.notList.push(this.notList[0])
this.notList.shift()
this.animate = false
}, 500)
},
//鼠标移上去停止
Stop() {
clearInterval(this.timer)
},
Up() {
this.timer = setInterval(this.showMarquee, 1500)
},
}//当然如果你觉得滚动不够完美,那就在加上动画效果吧!
二、 第二种方式
.inner-container {
animation: myMove 5s linear infinite;
animation-fill-mode: forwards;
}
/*文字无缝滚动*/
@keyframes myMove {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-150px);
}
}
data() {
return {
arr: [
'1 创作不易,感谢支持',
'2 今天可乐很开心!',
'3 因为看到大佬的到来',
'4 太棒了',
'5 点个赞支持一下呗!',
'1 创作不易,感谢支持',
],
}
},
当动画结束时通过: 将动画重置为第一帧,这样就能够实现无缝的播放了
animation-fill-mode: forwards;
三、第二种方式marquee标签:
(1)几个重要属性
1.direction:滚动方向(包括4个值:up、down、left、right)
说明:up:从下向上滚动;down:从上向下滚动;left:从右向左滚动;right:从左向右滚动。
语法:
2.behavior:滚动方式(包括3个值:scroll、slide、alternate)
说明:scroll:循环滚动,默认效果;slide:只滚动一次就停止;alternate:来回交替进行滚动。
语法:
3.scrollamount:滚动速度(滚动速度是设置每次滚动时移动的长度,以像素为单位)
语法:
4.scrolldelay:设定滚动两次之间的延迟时间,值大了会有一步一停顿的效果(设置滚动的时间间隔,单位是毫秒)
语法:
5.loop:设定滚动循环的次数(默认值是-1,滚动会不断的循环下去)
语法:
6.width、height:设定滚动字幕的宽度、高度
语法:
7.bgcolor:设定滚动字幕的背景颜色(可以是颜色值,也可以是rgb()或rgba()函数)
语法:
8.hspace、vspace:空白空间(相当于设置margin值)
说明:hspace:设定活动字幕里所在的位置距离父容器水平边框的距离,如hspace=“10”,即等同于:margin:0 10px;
vspace:设定活动字幕里所在的位置距离父容器垂直边框的距离,如vspace=“10”,即等同于:margin:10px 0;
语法:(等同于:margin:10px;)
9.align:设定滚动字幕内容的对齐方式(包括9个值:absbottom、absmiddle、baseline、bottom、left、middle、right、
texttop、top)
说明:absbottom:绝对底部对齐(与g、p等字母的最下端对齐)
absmiddle:绝对中央对齐
baseline:底线对齐
bottom:底部对齐(默认)
left:左对齐 middle:中间对齐
right:右对齐 texttop:顶线对齐
top:顶部对齐
语法:
10.face:设定滚动字幕的文字字体
语法:
11.color:设定滚动字幕的文字颜色
语法:
12.size:设定滚动字幕的文字字号
语法:
13.STRONG:设定滚动字幕的文字加粗
语法:
(2)常用到的两个事件
onMouseOut="this.start()" 用来设置鼠标移出该区域时继续滚动
onMouseOver="this.stop()" 用来设置鼠标移入该区域时停止滚动
完整代码如下: