html 代码

<div class="myls-out-div" style="overflow: hidden;">

    <ul id="mylspaomadeng"  class="myls-ul"  >

        <li  class="myls-li">

            <img  class="myls-img" src="img/indexImg/myls1.png" />

        </li>

        <li  class="myls-li">

            <img  class="myls-img" src="img/indexImg/myls2.png" />

        </li>

        <li  class="myls-li">

            <img  class="myls-img" src="img/indexImg/myls3.png" />

        </li>

        <li  class="myls-li">

            <img  class="myls-img" src="img/indexImg/myls4.png"  />

        </li>

    </ul>

 </div>

css

.myls-out-div {

    width: 100%;

    height: 212px;

    background-color: #fafafa;

    float: left;

    overflow: hidden;

 }

 .myls-img {

    height: 100%;

}

.myls-ul{

    float: left;

    height: 100%;

    position: relative;

    margin: 0px;

    padding: 0px;

}

 .myls-li{

    list-style: none;

    display: inline-block;

    float: left;

    padding-right: 15px;

    padding-top: 15px;

    padding-bottom: 15px;

    height: 100%;

}

js代码

function mylsRunHorseLight() {

      if (mylsTimer != null) {

            clearInterval(mylsTimer);

      }

      var oUl = document.getElementById("mylspaomadeng");

      if(oUl != null){

            oUl.innerHTML += oUl.innerHTML;

            oUl.innerHTML += oUl.innerHTML;

            oUl.innerHTML += oUl.innerHTML;

            var lis = oUl.getElementsByTagName('li');

            var lisTotalWidth = 0;

            var resetWidth = 0;

            for (var i = 0; i < lis.length; i++) {

                  lisTotalWidth += lis[i].offsetWidth;

            }

            for (var i = 1; i <= lis.length / 4; i++) {

                  resetWidth += lis[i].offsetWidth;

            }

            oUl.style.width = lisTotalWidth + 'px';

            var left = 0;

            mylsTimer = setInterval(function() {

                  left -= 1;

                  if (left <= -resetWidth) {

                        left = 0;

                  }

                  oUl.style.left = left + 'px';

            }, 20)

            $("#mylspaomadeng").hover(function() {

                  clearInterval(mylsTimer);

            }, function() {

                  clearInterval(mylsTimer);

                  mylsTimer = setInterval(function() {

                        left -= 1;

                        if (left <= -resetWidth) {

                              left = 0;

                        }

                        oUl.style.left = left + 'px';

                  }, 20);

            })

      }

}

注意事项

正常来说,宽度是自动获取进行计算的。在普通的工程下都没有问题,在 Spring Boot 项目中,我发现此处失效,查看原因是因为图片加载过慢,没有找到特别好的解决办法,直接将宽度限制死了。宽度的两种方法大家根据自身需要选择。目前失效的问题只出现在了 Spring Boot 工程上。

js实现图片无缝循环跑马灯的更多相关文章

  1. js无缝滚动跑马灯

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. js实现图片无缝轮播

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. js 图片无缝循环

    <html> <head> <title>Js图片无缝滚动</title> <style type="text/css"> ...

  4. 图片滚动js 实现图片无缝滚动

    在改章节中,我们主要介绍图片滚动的内容,自我感觉有个不错的建议和大家分享下 非常平滑的JS图片滚动特效代码,无缝循环,速度可自定义,鼠标悬停时停止.它的特点是JS和图片地址分离,这样做你就经易的从数据 ...

  5. js 实现图片间隔循环轮播以及没有间隔的循环轮播

    链接地址:http://blog.sina.com.cn/s/blog_75cf5f32010199dn.html 最近做了个图片循环轮播的功能.就是几张图片不断的循环滚动显示. 感觉这个方法不错所以 ...

  6. vue.js(4)--字符串跑马灯

    制作一个字符串的跑马灯效果 (1)实例代码 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. JS实现图片无缝滚动特效;附addEventListener()方法、offsetLeft和offsetWidth属性。

    一:html部分 <body> <input id="btn1" type="button" value="向左"> ...

  8. 使用 JS 实现文字左右跑马灯

    Ø  前言 其实,前面两篇已经基本上实现了图片.文字跑马灯,这里为什么还要学下文字左右跑马灯呢?因为,虽然基本一样,但实现起来还是有很大不同的,所以为了完整再补充一下.代码如下: 1.   首先定义 ...

  9. 原生JS—实现图片循环切换的两种方法

    今天我们主要讲讲如何使用原生JS实现图片的循环切换的方法.多余的话我们就不多说了,我们一个一个开始讲吧. 1  原生JS实现图片循环切换 -- 方法一 在上栗子之前我们先简单介绍一下所用的一些知识点. ...

随机推荐

  1. Python中的模块引用机制

    一.模块引用 Def: 在Python 程序中使用另一个文件定义的类(方法).函数.数据等 被引用模块位置.通常 Python2 : "/Library/Python/2.7/site-pa ...

  2. 《Netty Redis Zookeeper 高并发实战》 勘误

    <Netty Redis Zookeeper 高并发实战> 勘误与申明 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 勘误一 文字问题: Page1 J ...

  3. git中报错---fatal: pathspec 'readme.txt' did not match any files

    1.git安装 git官网下载最新版本,一键安装或custom install. 2.会弹出一个类似的命令窗口的东西,就说明Git安装成功. 3.安装完成后,还需要最后一步设置,在命令行输入如下--- ...

  4. 安装swoole出现make报错的原因与解决方法

    安装swoole报错,错误信息如下: 报错原因 报错很明显,找不到 openssl/ssl.h ,首先要确认电脑上有没有安装 openssl Mac安装openssl 既然它找不到,那么就需要手动的指 ...

  5. Go 自定义类型来实现枚举类型限制

    今天使用iota 发现一个问题.定义别名类型的时候 调用函数报错.废话不多说,我们看一段示例(关于iota的用法这里就不介绍了,手册介绍滴比较详细): package main import &quo ...

  6. JMeter资源监控插件PerfMon的使用

    1.插件下载 首先下载jmeter的插件管理工具,下载地址:jmeter-plugins.org 如英文说明,把下载后的jar包放到jmeter的安装目录lib/ext文件夹下,重启jmeter,就会 ...

  7. 清新水彩追梦在路上述职报告通用PPT模板

    清新漫画风,轻松可爱模版来源:  http://ppt.dede58.com/gongzuohuibao/26566.html

  8. Linux CentOS 6.5 卸载、tar安装MySQL

    卸载系统自带MySQL 1. 查看系统当前是否安装有MySQL rpm -qa|grep -i mysql 2. 卸载当前版本的MySQL yum remove mysql mysql-server ...

  9. Python:判断列表中含有字符串且组成新的列表打印输出-Dotest董浩

    '''题一:判断列表中含有字符串且组成新的列表打印输出知识点:列表.列表的增删改查.for循环.if判断'''#@Author:Dotest软件测试#@QQ:1274057839names = ['D ...

  10. f.lux

    这软件很小,安装后基本不用管,它会自动运行自动调节.在它运行的时候,一般在桌面右小角可以找到.平时不用去管它,它自会按时自动调节好屏幕的色温,以保护视力. https://justgetflux.co ...