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 相关文章推荐
动态样式类封装JS代码
Sep 02 Javascript
高亮显示web页表格行的javascript代码
Nov 19 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
vue-cli中打包图片路径错误的解决方法
Oct 26 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
微信小程序之批量上传并压缩图片的实例代码
Jul 05 Javascript
layui中table表头样式修改方法
Aug 15 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 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/08/27 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
什么是python的函数体
2020/06/19 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
公司总经理助理岗位职责
2014/07/09 职场文书
先进个人评语大全
2015/01/04 职场文书
节水倡议书
2015/01/19 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
vue自定义右键菜单之全局实现
2022/04/09 Vue.js