结合 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教程:background-clip和background-origin
Oct 17 HTML / CSS
css3圆角边框和边框阴影示例
May 05 HTML / CSS
解决CSS3的opacity属性带来的层叠顺序问题
May 09 HTML / CSS
纯CSS3实现的井字棋游戏
Nov 25 HTML / CSS
Html5画布_动力节点Java学院整理
Jul 13 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
HTML5本地存储之IndexedDB
Jun 16 HTML / CSS
Html5在手机端调用相机的方法实现
May 13 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
CSS3实现列表无限滚动/轮播效果
Jun 23 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 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 代码优化的42条建议 推荐
2009/09/25 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP学习之整理字符串
2011/04/17 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python flask中动态URL规则详解
2019/11/22 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
质检部部长职责
2013/12/16 职场文书
国际贸易求职信
2014/07/05 职场文书
大学军训口号大全
2015/12/24 职场文书
 python中的元类metaclass详情
2022/05/30 Python
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android