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 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
js中格式化日期时间型数据函数代码
Nov 08 Javascript
Javascript中正则表达式的全局匹配模式分析
Apr 26 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
基于JavaScript实现div层跟随滚动条滑动
Jan 12 Javascript
Vue.JS入门教程之事件监听
Dec 01 Javascript
node.js操作mysql简单实例
May 25 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
Sep 07 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
小程序双头slider选择器的实现示例
Mar 31 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
咖啡与牛奶
2021/03/03 冲泡冲煮
PHP6 mysql连接方式说明
2009/02/09 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
jquery.cookie用法详细解析
2013/12/18 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
js实现自定义路由
2017/02/04 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python 制作磁力搜索工具
2021/03/04 Python
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
高中生学习的自我评价
2013/12/14 职场文书
编辑求职信样本
2013/12/16 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
慰问信范文
2015/02/14 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
高一地理教学工作总结
2015/08/12 职场文书
初中团委工作总结
2015/08/13 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书