结合 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动画技术
Jan 01 HTML / CSS
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
May 07 HTML / CSS
一款纯css3实现的颜色渐变按钮的代码教程
Nov 12 HTML / CSS
CSS3中的content属性使用示例
Jul 20 HTML / CSS
CSS3对背景图片的裁剪及尺寸和位置的设定方法
Mar 07 HTML / CSS
CSS3中的Media Queries学习笔记
May 23 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
Jul 24 HTML / CSS
html5视频媒体标签video的使用方法及完整参数说明详解
Sep 27 HTML / CSS
钉钉企业内部H5微应用开发详解
May 12 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
Aug 19 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中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
php表单处理操作
2017/11/16 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
javascript parseInt 大改造
2009/09/27 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
在vue中实现echarts随窗体变化
2020/07/27 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
Python ZipFile模块详解
2013/11/01 Python
Python中使用PDB库调试程序
2015/04/05 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python机器学习之神经网络(三)
2017/12/20 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python机器学习实现决策树
2019/11/11 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
婚假请假条怎么写
2014/04/10 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
小王子读书笔记
2015/06/29 职场文书