结合 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教程(1):什么是CSS3
Apr 02 HTML / CSS
css3简单练习实现遨游浏览器logo的绘制
Jan 30 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
Sep 11 HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
Oct 15 HTML / CSS
html5中 media(播放器)的api使用指南
Dec 26 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
Sep 08 HTML / CSS
字中字效果的实现【html5实例】
May 03 HTML / CSS
HTML5 Canvas 旋转风车绘制
Aug 18 HTML / CSS
浅析HTML5中的download属性使用
Mar 13 HTML / CSS
利用html+css实现菜单栏缓慢下拉效果的示例代码
Mar 30 HTML / CSS
详解CSS玩转图片Base64编码
May 25 HTML / CSS
html+css实现赛博朋克风格按钮
May 26 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二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
两个Javascript小tip资料
2010/11/23 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
pandas的相关系数与协方差实例
2019/12/27 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
理工科学生的自我评价
2013/12/15 职场文书
党建示范点实施方案
2014/03/12 职场文书
差生评语大全
2014/05/04 职场文书
横幅标语大全
2014/06/17 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
施工员岗位职责范本
2015/04/11 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python