原生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 相关文章推荐
用htc组件制作windows选项卡
Jan 13 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
js中unicode转码方法详解
Oct 09 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
js仿小米手机上下滑动效果
Feb 05 Javascript
slideToggle+slideup实现手机端折叠菜单效果
May 25 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 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
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
PHP实现递归无限级分类
2015/10/22 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python中除法使用的注意事项
2014/08/21 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python爬取微信公众号文章
2018/08/31 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
焦裕禄精神心得体会
2014/09/02 职场文书
软件测试专业推荐信
2014/09/18 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
普通员工辞职信范文
2015/05/12 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
运动会加油稿
2015/07/22 职场文书
大学迎新生欢迎词
2015/09/29 职场文书