结合 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 07 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
Jun 13 HTML / CSS
HTML高亮关键字的实现代码
Oct 22 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
Apr 03 HTML / CSS
纯html5+css3下拉导航菜单实现代码
Mar 18 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
Apr 21 HTML / CSS
24个canvas基础知识小结
Dec 17 HTML / CSS
简单介绍HTML5中的文件导入
May 08 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
Jan 25 HTML / CSS
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
Aug 23 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 include的妙用,实现路径加密
2008/07/29 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
webpack之devtool详解
2018/02/10 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
医学生求职自荐信
2013/10/25 职场文书
寒假家长评语大全
2014/04/16 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
党小组鉴定意见
2015/06/02 职场文书
工作收入证明范本
2015/06/12 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL