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 相关文章推荐
$.ajax json数据传递方法
Nov 19 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
用C/C++来实现 Node.js 的模块(二)
Sep 24 Javascript
Node.js实现JS文件合并小工具
Feb 02 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
May 03 Javascript
javascript弹出带文字信息的提示框效果
Jul 19 Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
JavaScript无操作后屏保功能的实现方法
Jul 04 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
Nov 06 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
python计算一个序列的平均值的方法
2015/07/11 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
给同事的道歉信
2014/01/11 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
春季防火方案
2014/05/10 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
英语教育专业自荐信
2014/05/29 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
详解python网络进程
2021/06/15 Python