今天接到任务要我实现下图的第三种文字效果
实在没有思路,于是百度了好久.找到了几种实现方法,其中也有插件.
因为vue是基于数据驱动的,所以,对我们开发者来说,直接操控数组,删除第一个数组数据,然后追加到数组后面就好了。
template 部分
<!-- 无缝滚动效果 -->
<div class="marquee-wrap">
<ul class="marquee-list" :class="{'animate-up': animateUp}">
<li v-for="(item, index) in listData" :key="index">{{item}}</li>
</ul>
</div>
script部分
export default {
name: "marquee-up",
data() {
return {
animateUp: false,
listData: ['12***ve 成功邀请12人 已获奖金60元', 'l***e 成功邀请5人 已获奖金40元', 'l***e 成功邀请1人 已获奖金5元'],
timer: null
}
},
mounted() {
this.timer = setInterval(this.scrollAnimate, 1500);
},
methods: {
scrollAnimate() {
this.animateUp = true
setTimeout(() => {
this.listData.push(this.listData[0])
this.listData.shift()
this.animateUp = false
}, 500)
}
},
destroyed() {
clearInterval(this.timer)
}
};
style 部分
.marquee-wrap {
width: 80%;
height: 40px;
border-radius: 20px;
background: rgba($color: #000000, $alpha: 0.6);
margin: 0 auto;
overflow: hidden;
.marquee-list {
li {
width: 100%;
height: 100%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
padding: 0 20px;
list-style: none;
line-height: 40px;
text-align: center;
color: #fff;
font-size: 18px;
font-weight: 400;
}
}
.animate-up {
transition: all 0.5s ease-in-out;
transform: translateY(-40px);
}
}
如果只是照搬代码而没有去理解,也是没有意思的.所以以下是自己的理解
首先mounted是在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
所以这是在html渲染后的第一步操作就是以1500毫秒不停的调用scrollAnimate这个方法
首先animateUp是一开始定义好的为false在调用scrollAnimate这个方法时为真了.我们看template可以看到这个是class是否有效.也就是说为真时class有效.
setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数后调用函数或计算表达式。
push是在尾部增加第一条数据,shift删除数组中的第一个项目
这段时间遇到一个需求, 从后端获取到很多人的名字 需要横向滚动轮播这些名字, 就像商铺门口的电子横幅一样 查了很多的插件 也没有找到自己想要的感觉 于是准备自己写一个通用的组件 创建一个my-marquee.vue文件 然后在需要的地方中使用这个组件即可 参数是一个数组[ "刘德华","张学友"]...
文字左右滚动案例 文字上下滚动案例1 3.文字上下滚动案例2...
转自:https://www.jianshu.com/p/a68819f143ac 子组件Scroller 滚动文字template(小喇叭megaphone我用的是iview的图标,所以我加了个注释) script部分 样式参考 父组件引用子组件 说明 因为考虑到滚动文字的list可能是ajax请求异步获取的,子组件只在mount时取一次父组件传过来的lists参数,那么得到的lists就是个空...
HTML JS...
...
...
在JQ22看到的一个小案例,模仿一下 首先在这里可以看出来,要渲染的只有滚动的部分,需求就是每过几秒跳到下一个 先写布局部分: 样式部分: 在vm实例的数据中心,声明一个list数组对象,存放数据: 在视图层的 li 中渲染出来: 因为上面设定了盒子的宽度,并且给父级盒子设置了 溢出隐藏,所以只会显示一条数据, 在城市和销售金额上给上 calss 名,让字体颜色...
...
Maven配置本地仓库 Maven项目使用本地仓库 项目部署或开发环境没有外网的情况下, 需要配置本地仓库. 由于是在内网环境,maven无法连接互联网,所以只能事先将jar下载到本地,然后通过配置pom文件,将jar引用至本地仓库即可。 修改maven的settings.xml文件 配置本地仓库目录 修改maven项目中的pom.xml 添加如下配置 配置环境变量 参考链接: https://b...