原生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 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
Js中sort()方法的用法
Nov 04 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
Dec 02 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
原生JS实现的双色球功能示例
Feb 02 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
Vue登录主页动态背景短视频制作
Sep 21 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
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
python批量赋值操作实例
2018/10/22 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
C面试题
2015/10/08 面试题
如何用JQuery进行表单验证
2013/05/29 面试题
高中生学习生活的自我评价
2013/11/27 职场文书
高校辅导员推荐信范文
2013/12/25 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
工作过失检讨书
2014/02/23 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
入股合作协议书
2014/10/12 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
如何Python使用re模块实现okenizer
2022/04/30 Python
Linux中sftp常用命令整理
2022/06/28 Servers