结合 CSS3 transition transform 实现简单的跑马灯效果的示例


Posted in HTML / CSS onFebruary 07, 2018

这是之前客户的一个需求,给的 demo 是用 gif 实现跑马灯,但是我们的没法用 gif,因为图上的文字需要翻译成各国语言,所以不能使用图片来实现,那么,自己写一个咯。

思考过程

结合 CSS3 transition transform 实现简单的跑马灯效果的示例

html

<div lantern>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
  </ul>
</div>

css

* {
  margin: 0;
  padding: 0;
}

[lantern] {
  overflow: hidden;
}

ul {
  white-space: nowrap;
  font-size: 0;
  transform: translateX(0);
  transition: transform 0s linear;
}

li {
  width: 50vw;
  border: 1px solid red;
  display: inline-block;
  height: 30px;
  font-size: 16px;
}

js

function lantern($element,speed = 10) {
    let liWidth = 0;
    let $ul = $element.find("ul");

    function run(init = false) {
      let $li = $ul.find("li").first();
      liWidth = $li.outerWidth();

      if(!init){
        $ul.append($li[0].outerHTML);
        $li.remove();
      }
      
      $ul[0].style.transitionDuration = "0s";
      $ul[0].style.transform = "translateX(0)";

      setTimeout(function() {
        $ul[0].style.transitionDuration = speed + "s";
        $ul[0].style.transform = "translateX(-" + liWidth + "px)";
      }, 20);
    }

    run(true);
    setTimeout(() => {
      setInterval(run, speed * 1000);
    }, 0);
  }
 
lantern($('[lantern]'), 20);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3不透明度实例讲解
Apr 26 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
Apr 19 HTML / CSS
html通过canvas转成base64的方法
Jul 18 HTML / CSS
canvas绘制文本内容自动换行的实现代码
Jan 14 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
Dec 13 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
Jan 09 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 HTML / CSS
html5 自定义播放器核心代码
Dec 20 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
Mar 02 HTML / CSS
CSS的class与id常用的命名规则
May 18 HTML / CSS
css3 clip实现圆环进度条的示例代码
Feb 07 #HTML / CSS
使用css3做0.5px的细线的示例代码
Jan 18 #HTML / CSS
详解CSS 3 中的 calc() 方法
Jan 12 #HTML / CSS
css3实现冲击波效果的示例代码
Jan 11 #HTML / CSS
css3如何绘制一个圆圆的loading转圈动画
Jan 09 #HTML / CSS
浅谈CSS3中的变形功能-transform功能
Dec 27 #HTML / CSS
css3的动画特效之动画序列(animation)
Dec 22 #HTML / CSS
You might like
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
Javascript中Event属性搜集整理
2013/09/17 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
BootStrap modal实现拖拽功能
2018/12/01 Javascript
Python中xrange与yield的用法实例分析
2017/12/26 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
对python函数签名的方法详解
2019/01/22 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python调用JavaScript代码的方法
2020/10/27 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
python制作抽奖程序代码详解
2021/01/15 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
中学生差生评语
2014/01/30 职场文书
团日活动总结报告
2014/06/25 职场文书
公证委托书
2014/08/01 职场文书
委托证明书
2014/09/17 职场文书
爱国主义主题班会
2015/08/14 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS