一步一步写web之初识web(五-数据滚动实现)

时间:2022-06-16 03:05:44

趁着空挡赶紧写!

一、数据滚动

这节想做的效果是在一个框内数据可以循环的向上滚动,只能说功能仿照永夜君王贴吧的捧场动态,样式就不严格一样了。

首先要呈现一个边框出来

#rollText{
    position: absolute;
    width: 400px;
    border: 1px solid #333333;
    margin-top: 300px;
    height: 30px;
    top:30px;
    right: 50px;
    overflow: hidden;
}
 <div id="rollText">
            <p>这是第一行数据</p>
            <p>这是第二行</p>
            <p>第三行也出来了</p>
            <p>这是第四行数据</p>
            <!--<p>这是第五行数据</p>-->
            <!--<p>这是第六行数据</p>-->
            <!--<p>这是第七行数据</p>-->
            <!--<p>这是第八行数据</p>-->
        </div>

这里的位置是放在三角形的右边,多列显示的上边。注释掉的几行是扩展用的,现在的展示只是单列显示滚动,如下图 一步一步写web之初识web(五-数据滚动实现)
这四行数据可以循环的滚动,目前遇到一个困境,四个数据有间距,可以查看 简单数据滚动实现。接下来接着完善。

二、修改两个数据间有空白

重新调节动画的百分比,得到动画效果2
/*动画效果2*/
@-webkit-keyframes anim1{
    0% {top: 15px;opacity: 1}
    100% {top: -105px;opacity: 1}
}

@-webkit-keyframes anim2{
    0% {top: 45px;opacity: 1}
    100% {top: -75px;opacity: 1}
}

@-webkit-keyframes anim3{
    0% {top: 75px;opacity: 1}
    100% {top: -45px;opacity: 1}
}

@-webkit-keyframes anim4{
    0% {top: 105px;opacity: 1}
    100% {top: -15px;opacity: 1}
}
这里的滚动效果基本上理想了,两个数据无间隙的链接,但是有一个缺陷:数据滚动结束和首个数据衔接时有一个小的空白。依然不是很理想,仔细思考觉得应该还可以解决,差点走近死胡同了,想转向js处理的,又不知道能不能处理,最后想想应该是自己想错了,所以有了动画效果3。

三、动画效果3

这次着重将思考问题的点放在收尾交接的地方,自己在纸上画了又画,最终理清了思路。
1、首行数据填充一半(下半部分),尾行数据填充上半部分
2、单独计算尾行数据填满展示的条框时首行数据应该在的位置,此时首行数据被分成了两个部分
3、单独计算尾行数据在首次加载时应移动的距离(条框不显示的时候即可做其他处理)。
最终的样式调整如下:
/*动画效果3*/
@-webkit-keyframes anim1{
    0% {top:15px; opacity:1}
    37.5% {top:-30px; opacity:1}
    37.6% {top:-30px;opacity:0}
    74.9% {top:45px;opacity:0}
    75% {top:45px;opacity:1}
    100% {top:15px;opacity:1}
}

@-webkit-keyframes anim2{
    0%{top:45px;opacity:1}
    100%{top:-75px;opacity:1}
}

@-webkit-keyframes anim3{
    0%{top:75px;opacity:1}
    100%{top:-45px;opacity:1}
}

@-webkit-keyframes anim4{
    0%{top:-15px;opacity:1}
    25%{top:-45px;opacity:1}
    25.9%{top:-45px;opacity:0}
    62.4%{top:30px;opacity:0}
    62.5%{top:30px;opacity:1}
    100%{top:-15px;opacity:1}
}
代码已同步到github,包括几次尝试的代码也上传了,最终的动画3是想要的结果,动画1、动画2在代码里已注释,需要的自行打开。githut地址: https://github.com/dwenb/webLearning
初始web系列就此结束,下一章做一个总结。