纯js实现无缝滚动功能代码实例


Posted in Javascript onFebruary 21, 2020

这篇文章主要介绍了纯js实现无缝滚动功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

HTML代码

<!--父容器要使用overflow: hidden;-->
<div id="imgsList" style="height:150px;width:980px;overflow: hidden;"> 
  <!--滚动容器-->
  <div id="marquee_self">
    <ul id="marquee_ul">
      <li><img src="" width="180px" height="100px"></li>
      <li><img src="" width="180px" height="100px"></li>
      <li><img src="" width="180px" height="100px"></li>
    </ul>
  </div>
</div>

CSS代码

#marquee_self *{
  margin: 0;
  padding: 0;
}
#marquee_self{
  width: 1620px;  //所有图片长度个数*width
  height: 100px;  //图片高度
  //margin: 100px auto; 居中
  background-color: #646464;
  position: relative;
  overflow: hidden;
}
#marquee_self ul{
  position:absolute;
  left:0;
  top:0;
  overflow: hidden; //li中超出部分隐藏掉
  background-color: #3b7796; //背景色用来看问题
}
#marquee_self ul li{
  float: left;  //左对齐变为图片水平
  width: 180px;  //图片宽度
  height: 100px; //图片高度
  list-style: none; //无间隙
}

JS代码

<script type="text/javascript">
  window.onload = function(){
    var oDiv = document.getElementById('marquee_self');  //容器节点
    var oUl = document.getElementById('marquee_ul');  //ul节点
    var speed = -2;  //初始化速度,默认往左

    oUl.innerHTML += oUl.innerHTML;//ul中图片内容翻倍
    var oLi= oUl.getElementsByTagName('li'); //获取ul节点下所有li集合
    oUl.style.width = oLi.length*180+'px';//设置ul的宽度翻倍后的宽度,使图片可以放下

    /*var oBtn1 = document.getElementById('btn_left'); 左移动按钮
    var oBtn2 = document.getElementById('btn_right'); 右移动按钮*/

    function move(){
      if(oUl.offsetLeft<-(oUl.offsetWidth/2)){  //向左滚动,当向左滚动超过总ul长度一半时
        oUl.style.left = 0;  //变为从头开始
      }

      if(oUl.offsetLeft > 0){    //向右滚动,当靠右的图1移出边框时
        oUl.style.left = -(oUl.offsetWidth/2)+'px';
      }

      oUl.style.left = oUl.offsetLeft + speed + 'px';  //图片移动
    }

    /*oBtn1.addEventListener('click',function(){  //向左移动按钮点击事件
      speed = -2;
    },false);
    oBtn2.addEventListener('click',function(){  //向右移动按钮点击事件
      speed = 2;
    },false);*/

    var timer = setInterval(move,30);//全局变量 ,保存返回的定时器

    oDiv.addEventListener('mouseout', function () { //鼠标移开添加计时器
      timer = setInterval(move,30);
    },false);
    oDiv.addEventListener('mousemove', function () { //鼠标移入清除定时器
      clearInterval(timer);
    },false);
  }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery ajax(复习)—Baidu ajax request分离版
Jan 24 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 Javascript
简单了解vue 插值表达式Mustache
Jul 22 Javascript
微信小程序用户授权最佳实践指南
May 08 Javascript
vue中实现动态生成二维码的方法
Feb 21 #Javascript
JS如何把字符串转换成json
Feb 21 #Javascript
简单了解JS打开url的方法
Feb 21 #Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 #Javascript
如何基于js判断浏览器版本
Feb 20 #Javascript
微信小程序webSocket的使用方法
Feb 20 #Javascript
Javascript Worker子线程代码实例
Feb 20 #Javascript
You might like
在PHP的图形函数中显示汉字
2006/10/09 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
高中毕业典礼演讲稿
2014/09/09 职场文书
工程款催款函
2015/06/24 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
2019银行竞聘书
2019/06/21 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书