原生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 相关文章推荐
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
jQuery如何获取动态添加的元素
Jun 24 Javascript
js基础之DOM中元素对象的属性方法详解
Oct 28 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 Javascript
taro小程序添加骨架屏的实现代码
Nov 15 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 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
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
大专生找工作自荐书
2014/06/10 职场文书
关于读书的活动方案
2014/08/14 职场文书
活着观后感
2015/06/03 职场文书
付款证明模板
2015/06/19 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫
python开发制作好看的时钟效果
2022/05/02 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android