前言
通知栏组件是一个比较常见的组件了,基本上每个站点都会有怎么个组件,主要就是通告站点的一些变化或者是告知一些中奖名单等作用。
最近在复习CSS3动画部分内容,想着平时通知栏组件大部分还是用JS来实现,正好拿这块组件来当复习,下面写了三个小例子在此分享,欢迎大家观看,如有疑问,欢迎留言评论哈。
第一种
HTML部分
<div class="notice">
<div class="notice__inner">
<div class="notice__box">
<div class="notice__item">恭喜会员用户 <span style="color: red;">橙某人</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">小密圈圈</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">Cooke_</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">爱音乐网站</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">青年之声</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">仙人</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">三十万人编号</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">Maboroshii</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">陈亚明</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">老娘终于发达了</span> 中奖</div>
</div>
<div class="notice__box">
<div class="notice__item">恭喜会员用户 <span style="color: red;">橙某人</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">小密圈圈</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">Cooke_</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">爱音乐网站</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">青年之声</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">仙人</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">三十万人编号</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">Maboroshii</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">陈亚明</span> 中奖</div>
<div class="notice__item">恭喜会员用户 <span style="color: red;">老娘终于发达了</span> 中奖</div>
</div>
</div>
</div>
CSS部分
.notice{
width: 300px;
height: 300px;
border-radius: 8px;
border: 1px solid #eee;
margin: 100px auto;
}
.notice__inner{
width: 100%;
height: 100%;
overflow: hidden;
font-size: 14px;
color: #666;
}
.notice__box{
animation: roll 10s linear infinite;
}
.notice__item{
width: 100%;
height: 30px;
line-height: 30px;
padding: 0 12px;
white-space: nowrap;
}
@keyframes roll {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-300px);
}
}

视口容器高度需要固定,超出视口容器隐藏内容; 为了营造出无缝滚动回来,内容需要准备两份,彼此紧随; 通过移动内层translateY实现滚动效果; 在第一份内容完全滚出视口容器的一瞬间,立刻将内容位置进行复原; 通过infinite来循环此过程;
第二种
HTML部分
<div class="notice">
<div class="notice__inner">
<div class="notice__item">HTTP升级HTTPS全过程,Nginx配置平滑升级</div>
<div class="notice__item">一台电脑存在多个版本的Vuecli,方便快速初始化不同版本的Vue项目</div>
<div class="notice__item">前端模块化规范定义-不同规范下的导入导出</div>
<div class="notice__item">快速、简洁讲明Vue中v-for循环key的作用</div>
<div class="notice__item">Call与Apply函数的分析及手写实现</div>
<div class="notice__item">普通切图仔的一年 | 掘金年度征文</div>
<div class="notice__item">前端需要了解的浏览器缓存(即HTTP缓存)|声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)