原生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 相关文章推荐
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
Mar 01 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
Vue动态组件实例解析
Aug 20 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
Oct 23 Javascript
js字符串类型String常用操作实例总结
Jul 05 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
VuePress 中如何增加用户登录功能
Nov 29 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php curl发送请求实例方法
2019/08/01 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
django celery redis使用具体实践
2019/04/08 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
澳大利亚网上书店:QBD
2021/01/09 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
资料员岗位职责
2013/11/17 职场文书
小学运动会表扬稿
2014/01/19 职场文书
贷款委托书范本
2014/04/08 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android