网站建设资讯

NEWS

网站建设资讯

jQuery如何实现文字轮播特效

这篇文章主要为大家展示了“jQuery如何实现文字轮播特效”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现文字轮播特效”这篇文章吧。

在桃江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站建设 网站设计制作定制网站,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸营销网站建设,桃江网站建设费用合理。

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

功能点:

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

jQuery如何实现文字轮播特效

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

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

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

下面先看html结构

  
    
      
  • 1.这是第一条数据
  •       
  • 2.这是第二条数据
  •       
  • 3.这是第三条数据
  •       
  • 4.这是第四条数据
  •       
  • 5.这是第五条数据
  •       
  • 1.这是第一条数据
  •          

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

    其次是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,相信大家都能看的懂,就是让滚动元素的宽度等于他的内部元素的总宽度减去第一个(或者最后一个)元素的宽度,这样能保证无缝的效果。

    以上是“jQuery如何实现文字轮播特效”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


    分享名称:jQuery如何实现文字轮播特效
    URL标题:http://njwzjz.com/article/gdddhi.html

    其他资讯