jQuery文字轮播特效


Posted in Javascript onFebruary 12, 2017

闲谈:离开学校那座象牙塔已经也有大半年的事件了,生活中不再充满了茫然只有忙碌。连续加班加点大半个月,做的活动项目终于算是告一段落了,而今天也将是考验其真正价值的时候,现在将这次开发中遇到的问题做一下总结。

项目背景: 这次的项目主要是做一次全国酒店人气排名的营销活动,主要是基于在微信中传播,预计访问量达到亿级,并发做到2000+/s,且有不少的容错预案,我这次主要负责前端首页方面的展示效果。

功能点:

文字无缝轮播(不要在意为什么在移动端还会有这样的需求)

jQuery文字轮播特效

当一说到文字无缝滚动时,大家最先想到的是marquee,但是已经好久没有接触这个标签了,w3c也不对其进行维护了,并且还有最后必须等到全部滚动完毕才会再次滚动,并且对于rem布局采用基于px的滚动体验会非常的
差等等。。

第二个想到的是采用类似jquery实现的图片轮播机制,可以基本完成,但是发现无论是jquery还是zepto文字在滚动的时候会抖动,可用性比较差。

再就是现在用到的css3 + 少量js,采用很少的代码就可以实现文字不同长度,文字条数不定的文字无缝滚动轮播。

下面先看html结构

<div class="outer">
    <ul id="J_scroll">
      <li>1.这是第一条数据</li>
      <li>2.这是第二条数据</li>
      <li>3.这是第三条数据</li>
      <li>4.这是第四条数据</li>
      <li>5.这是第五条数据</li>
      <li>1.这是第一条数据</li> 
    </ul>
  </div>

与图片的无缝滚动一样,也需要将第一条数据拷贝一份放在最后面

其次是css的相关数据

.outer{
    width: 122px;
    height: 80px;
    overflow: hidden;
  }
  .outer ul{
    display:inline-block;
    height: 80px;
    -webkit-transform: translate3d(0, 0, 0); /* 3d渲染,开启硬件加速 */
    transform: translate3d(0, 0, 0);
    font-size: 0;  /* 使inline-block无默认间距 */
    white-space: nowrap; /* 超出不折行 */
  }
  .outer ul li{
    display: inline-block;
    padding-right: 50px;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    font-size: 24px;
  }
  .theanimation{
    animation:theanimation 20s infinite linear;
    -webkit-animation:theanimation 20s infinite linear;
  }
  @keyframes theanimation{
   from {
    transform:translateX(0%);
   } 
   to {
    transform:translateX(-100%);
   } 
  }
  @-webkit-keyframes theanimation{ 
   from {
    -webkit-transform:translateX(0%);
   } 
   to {
    -webkit-transform:translateX(-100%);
   }
  }

由于IOS的一些渲染机制,最好滚动的元素内部都需要启动硬件加速,否则会有卡顿和文字显示不全的问题。

最后是js

$('#J_scroll').width($('#J_scroll').width() - $('#J_scroll li:first-child').innerWidth());
  $('#J_scroll').addClass('theanimation');

这里还是写的jquery,相信大家都能看的懂,就是让滚动元素的宽度等于他的内部元素的总宽度减去第一个(或者最后一个)元素的宽度,这样能保证无缝的效果。

最后要说明为什么要用js动态添加css3的类名实现滚动效果,一开始的时候我也是想直接将css3滚动特效写在滚动的元素上,但是在iPhone上发现首次加载当前页面的时候他不会自动滚动。

Javascript 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
由Javascript实现的页面日历
Nov 04 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 Javascript
JavaScript实现图片放大预览效果
Nov 02 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 #Javascript
jQuery、zepto、js常用小技巧
Feb 12 #Javascript
JS中如何实现Laravel的route函数详解
Feb 12 #Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 #Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 #Javascript
老生常谈jquery id选择器和class选择器的区别
Feb 12 #Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 #Javascript
You might like
php数组总结篇(一)
2008/09/30 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
javascript如何写热点图
2015/12/08 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
python生成日历实例解析
2014/08/21 Python
Python多线程编程简单介绍
2015/04/13 Python
详细解读Python中的__init__()方法
2015/05/02 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
python使用Matplotlib画条形图
2020/03/25 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
Django密码存储策略分析
2020/01/09 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
中国高端家电购物商城:顺电
2018/03/04 全球购物
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
简历中自我评价分享
2013/10/09 职场文书
体育口号大全
2014/06/18 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
使用MybatisPlus打印sql语句
2022/04/22 SQL Server