原生js实现水平方向无缝滚动


Posted in Javascript onJanuary 10, 2017

水平方向无缝滚动

滚动支持图片,文字
原理 :一个大的盒子中放置两个盒子,通过设置offsetWidth,scrollLeft的关系来实现,而且还用到定时器函数setInterval,当手指移动上去定义滚动,离开继续滚动。兼容各大浏览器。
HTML代码

<div id="demo">
    <div id="demoin">
      <div id="demo1">
        <a href="">测试文字1</a>
        <a href="">测试文字2</a>
        <a href="">测试文字3</a>
        <a href="">测试文字4</a>
        <a href="">测试文字5</a>
        <a href="">测试文字7</a>
        <a href="">测试文字8</a>
        <a href="">测试文字9</a>
        <a href="">测试文字10</a>
        <a href="">测试文字11</a>
        <a href="">测试文字12</a>
        <a href="">测试文字13</a>
        <a href="">测试文字14</a>
        <a href="">测试文字15</a>
        <a href="">测试文字16</a>
        <a href="">测试文字17</a>
      </div>
      <div id="demo2"></div>
    </div>
  </div>

CSS代码

#demo{
      width:1000px;
      height:30px;
      overflow:hidden;
      line-height:30px;
      font-size:13px;
      font-family:'宋体';
      background:#ddd url(images/notice.png) no-repeat 25px center;
      color:#0C77CF;
      font-weight:bold;
      margin: 0 auto;
    }
    #demoin {
      width: 900px;
      height: 30px;
      margin: 0 auto;
      white-space: nowrap;
      overflow: hidden;
    }
    #demo #demo1, #demo #demo2{display:inline}

Javascript代码

window.onload = function(){
    scrollLeft();
  };
  function scrollLeft(){
    var speed = 20;
    var tab = document.getElementById('demoin');
    var tab1 = document.getElementById('demo1');
    var tab2 = document.getElementById('demo2');
    tab2.innerHTML = tab1.innerHTML;
    function Marquee(){
      if(tab2.offsetWidth - tab.scrollLeft <=0) {    
        tab.scrollLeft = 0;
      }else{
        tab.scrollLeft ++;
      }

    }
    var timer = setInterval(Marquee,speed);
    tab.onmouseover = function(){
      clearInterval(timer);
    };
    tab.onmouseout = function(){
      timer = setInterval(Marquee,speed);
    }
  }

效果图:

原生js实现水平方向无缝滚动

效果就是一直滚动。

注意:内容的宽度必须大于容器的宽度,否则无法滚动,测试文字一般是使用ajax后台获取。

Javascript 相关文章推荐
document.all与WEB标准
May 13 Javascript
javascript简单实现命名空间效果
Mar 06 Javascript
jQuery.holdReady()使用方法
May 20 Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 Javascript
angularJS Provider、factory、service详解及实例代码
Sep 21 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
Vue.js实现微信过渡动画左右切换效果
Jun 13 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
js实现页面多个日期时间倒计时效果
Jun 20 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 Javascript
vue组件实例解析
Jan 10 #Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 #Javascript
React实现点击删除列表中对应项
Jan 10 #Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 #Javascript
微信小程序 slider 详解及实例代码
Jan 10 #Javascript
微信小程序 switch组件详解及简单实例
Jan 10 #Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 #Javascript
You might like
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
PHP学习资料汇总与网址
2007/03/16 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP如何实现跨域
2016/05/30 PHP
php文件上传类的分享
2017/07/06 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
原生js+css实现tab切换功能
2020/09/17 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
详谈python read readline readlines的区别
2017/09/22 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
python中类与对象之间的关系详解
2020/12/16 Python
python math模块的基本使用教程
2021/01/16 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
会计专业毕业生自我评价
2013/09/25 职场文书
毕业自我鉴定范文
2013/11/06 职场文书
爱护公物标语
2014/06/24 职场文书
辩论赛新闻稿
2015/07/17 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
css height属性中的calc方法详解
2021/06/03 HTML / CSS