结合 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解决移动页面上点击链接触发色块的问题
Jun 03 HTML / CSS
button在IE6/7下的黑边去除方案
Dec 24 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
深入浅析css3 border-image边框图像详解
Nov 24 HTML / CSS
通过一张图教会你CSS3倒影的实现
Sep 26 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
May 03 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
Apr 24 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
Apr 24 HTML / CSS
前端实现打印图像功能
Aug 27 HTML / CSS
html+js 实现markdown编辑器效果
Oct 23 HTML / CSS
CSS3实现的3D隧道效果
Apr 27 HTML / CSS
从QQtabBar看css命名规范BEM的详细介绍
Aug 07 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
php google或baidu分页代码
2009/11/26 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
express express-session的使用小结
2018/12/12 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python如何实现word批量转HTML
2020/09/30 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
公司户外活动总结
2014/07/04 职场文书
教师群众路线心得体会
2014/11/04 职场文书
2016寒假假期总结
2015/10/10 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
Python Pandas常用函数方法总结
2021/06/15 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers