结合 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 相关文章推荐
IE兼容css3圆角的实现代码
Jul 21 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
Mar 16 HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
Jun 25 HTML / CSS
使用html5制作loading图的示例
Apr 14 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
Jun 23 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
Sep 19 HTML / CSS
html+css实现分层金字塔的实例
Jun 02 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
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
图书管理程序(二)
2006/10/09 PHP
php intval的测试代码发现问题
2008/07/27 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
基于python绘制科赫雪花
2018/06/22 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
python中str内置函数用法总结
2020/12/27 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
DataReader和DataSet的异同
2014/12/31 面试题
优秀班集体事迹材料
2014/12/25 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android