纯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 相关文章推荐
javascript Keycode对照表
Oct 24 Javascript
Confirmer JQuery确认对话框组件
Jun 09 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
基于AngularJS+HTML+Groovy实现登录功能
Feb 17 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
通过一个简单的例子学会vuex与模块化
Nov 22 Javascript
JavaScript实用代码小技巧
Aug 23 Javascript
在vue中获取token,并将token写进header的方法
Sep 26 Javascript
深入理解Angularjs 脏值检测
Oct 12 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
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python之用户输入的实例
2018/06/22 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
情况说明书格式范文
2014/05/06 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python