原生CSS实现文字无限轮播的通用方法


Posted in HTML / CSS onMarch 30, 2021

文字轮播在生活中很常见,各个超市及实体店门头通常会有文字轮播的广告牌,本文详细介绍下实现逻辑。

场景

商店门头广告牌,需要通过横向移动的文字来展示公告(加边框是为了更好演示)。

原生CSS实现文字无限轮播的通用方法

逻辑说明

原生CSS实现文字无限轮播的通用方法

实现文字无限轮转的逻辑主要有两点:

  • 文字水平移动
  • 文字首尾相接 

第1点实现方法是使用CSS动画,transform: translateX(-50%),即往左平移自身的一半。

第2点实现方法,跟第1点有关。CSS动画在默认情况下播放完成后是突变的,即播放完成时位置突变到初始位置(突变是瞬间完成的,人肉眼感知不到),因此我们可以利用突变来实现文字首尾相接。

我们用两段相同的文本,当第一段文本播放完毕,开始播放第二段文本时,此时动画突变又开始重新播放第一段文字,因两段文字内容一样,所以用户无感知。

思考

目前这种实现方式是通用的吗?

这种方式其实已经解决了大部分需求,但是当文字比较少,当文字的宽度小于窗口宽度时,是有问题的,我画的轮转逻辑示意图只是其中的一种情况。

当文字的宽度小于窗口宽度时,如何实现?

其实道理都一样,文字轮转核心之一是需要两段相同的文本,但它是有前提的,前提是一段文本的宽度必须大于窗口的宽度。

如何达到这个前提条件?

答案是 整体复制文本直到文本的宽度大于窗口的宽度,然后再处理成两段相同的文本。

总结

文字无限轮转的要点如下:

  • 文本宽度必须大于窗口宽度,文本宽度不够时就整体复制文本直到文本宽度大于窗口宽度
  • 两段相同的文本
  • 移动 50% 的距离

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>文字无限轮播</title>
 
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
 
        #wrap {
            overflow: hidden;
            position: relative;
            width: 200px;
            height: 20px;
            white-space: nowrap;
        }
 
        #inner {
            position: absolute;
            animation: slide 5s linear infinite;
        }
 
        #first{
            display: inline-block;
            border: 1px solid red;
        }
 
        #second{
            display: inline-block;
            border: 1px solid green;
        }
 
        @keyframes slide {
            0% {
                transform: translateX(0);
            }
            100% {
                transform: translateX(-50%);
            }
        }
    </style>
</head>
<body>
<div id="wrap">
    <div id="inner">
        <span id="first">本店主营拉面,刀削面,烩面,盖浇饭</span>
        <span id="second">本店主营拉面,刀削面,烩面,盖浇饭</span>
    </div>
</div>
</body>
</html>

到此这篇关于原生CSS实现文字无限轮播的通用方法的文章就介绍到这了,更多相关CSS实现文字无限轮播内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 优势以及网页设计师如何使用CSS3技术
Jul 29 HTML / CSS
CSS超出文本指定宽度用省略号代替和文本不换行
May 05 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
Mar 29 HTML / CSS
基于ccs3的timeline时间线实现方法
Apr 30 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
Nov 16 HTML / CSS
HTML5网页音乐播放器的示例代码
Nov 09 HTML / CSS
W3C公布最新的HTML5标准草案
Oct 17 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
Jan 21 HTML / CSS
会走动的图形html5时钟示例
Apr 27 HTML / CSS
深入理解HTML的FormData对象
May 17 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
Sep 25 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
Jul 28 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
CSS3通过var()和calc()函数实现动画特效
CSS3实现模糊背景的三种效果示例
使用css样式设计一个简单的html登陆界面的实现
CSS实现漂亮的时钟动画效果的实例代码
CSS3点击按钮圆形进度打钩效果的实现代码
完美实现CSS垂直居中的11种方法
You might like
PHP中路径问题的解决方案
2006/10/09 PHP
基于mysql的论坛(1)
2006/10/09 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
JavaScript实现通讯录功能
2020/12/27 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python @property装饰器原理解析
2020/01/22 Python
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
迟到检讨书300字
2014/02/14 职场文书
导游个人求职信范文
2014/03/23 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
住房租房协议书
2014/08/20 职场文书
党课心得体会范文
2014/09/09 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书