使用 JS 实现图片左右跑马灯
Ø 前言
之前写了一篇使用 JS 实现文字上下跑马灯,现在乘热打铁在把图片左右跑马灯一起贴出来,不多说直接看代码。
1. 首先定义 css 样式
<style type="text/css">
*{
margin: 0px;
padding: 0px;
list-style: none;
}
#div1{
width: 500px;
height: 125px;
margin: 60px auto 0px auto;
border: 2px solid lightgreen;
position: relative;
overflow: hidden;
}
#ul_img{
position: absolute;
top: 0;
left: 0;
}
#ul_img li{
float: left;
width: 125px;
height: 125px;
/*border: 1px solid red;*/
}
#ul_img li img{
width: 100%;
height: 100%;
}
</style>
2. HTML 代码
<div id="div1">
<ul id="ul_img">
<li><img src="../../../../Images/301.jpg" alt=""/></li>
<li><img src="../../../../Images/201.jpg" alt=""/></li>
<li><img src="../../../../Images/302.gif" alt=""/></li>
<li><img src="../../../../Images/202.jpg" alt=""/></li>
<li><img src="../../../../Images/203.jpg" alt=""/></li>
</ul>
</div>
3. JS 代码
var millisec = 10; //滚动间隔时间(毫秒)
var intervalId;
var left = 0;
var ul;
window.onload = function(){
ul = document.getElementById("ul_img");
ul.innerHTML += ul.innerHTML; //复制一份相同的li
var lis = ul.getElementsByTagName("li");
ul.style.width = (lis[0].offsetWidth * lis.length) + "px"; //重新设置宽度
intervalId = setInterval("scroll()", millisec);
var div1 = document.getElementById("div1");
div1.onmouseover = function(){
clearInterval(intervalId);
}
div1.onmouseout = function(){
intervalId = setInterval("scroll()", millisec);
}
}
function scroll(){
left -= 1;
//定位小于等于总宽度的二分之一时,则left设置为0
if(left <= -ul.offsetWidth / 2)
left = 0;
ul.style.left = left + "px";
}
4. 运行效果

Ø 分析
1. 总体来说还是比较简单,首先定义了一个 div,并在内部定义了 ul li 标签,用于存放图片。
2. 再将 ul 标签绝对定位,li 标签左浮动,img 宽度与高度设置100%。
3. js 运行时,首先复制一份所有的 li 标签,加入 ul 中(用于滚动时的下一份图片集合)。
4. 在 js 中可以看到,当ul 的 left 值小于 ul.offsetWidth 的二分之一时,就重新定位 ul 标签,这样就实现了循环滚动。
使用 JS 实现图片左右跑马灯的更多相关文章
- 使用vue.js封装一个包含图片的跑马灯组件
初衷: 学习完Vuejs后,来准备练习仿写一下老东家的门户页面,主要是为了熟悉一下常用插件的使用,比如video.js,wow.js,swiper等等:而其中涉及到一个包含图片跑马灯组件,大概长这样( ...
- 使用 JS 实现文字左右跑马灯
Ø 前言 其实,前面两篇已经基本上实现了图片.文字跑马灯,这里为什么还要学下文字左右跑马灯呢?因为,虽然基本一样,但实现起来还是有很大不同的,所以为了完整再补充一下.代码如下: 1. 首先定义 ...
- 【HTML】 向网页<Title></Title>中插入图片以及跑马灯
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style typ ...
- 使用 JS 实现文字上下跑马灯
Ø 前言 今天在做商城首页时,遇到一个上下跑马灯功能,因为之前也只是接触过左右的跑马灯,一时还不知道从何下手.在网上看了几个 demo,并亲自运行了一下,是可以实现的.但是,能运行不知其所以然也不行 ...
- JS写一个列表跑马灯效果--基于touchslide.js
先放上效果图: 类似于这样的,在列表中循环添加背景样式的跑马灯效果. 准备引入JS插件: <script type="text/javascript" src="x ...
- jquery.marquee.js - 有点奇怪的跑马灯动画,不过还是加上去了
客户想要一个跑马灯的效果,最终我用了jquery.marquee.js. 这个库很简单就能用. 效果是这样,从左到右,移动速度都不一样. 1. HTML <div class="mar ...
- PS跑马灯效果和更换图标
最终效果 1.图片修改 跑马灯效果图 Head页面 使用的 IScript_HPDefaultHdr() in WEBLIB_PORTAL.PORTAL_HOMEPAGE 这个页面 一 ...
- 微信小程序里实现跑马灯效果
在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS wxml: <!-- 复制的跑马灯效果 --> <view class=&quo ...
- javascript小记五则:用JS写一个图片左右自由滚动的“跑马灯”效果
之前看了很多百度搜索出的东西,十个有九个是不能实用的,个个讲的都不详细,今天详细给大家讲解下关于这个图片“跑马灯”滚动效果,源码如下: <!DOCTYPE html PUBLIC "- ...
随机推荐
- python中,print函数的sep和end参数
print函数是我们经常使用的,但是它的sep和end参数或许对很多python使用者相对陌生,他们可以让我们的打印更具有个性化. 先来看下官方解释, sep:分割值与值,默认是一个空格 end:附件 ...
- 刚需,jackjsonjson转化内部类问题
1.今天在编写jackjson将json转换成object的时候,突然报错: nested exception is com.fasterxml.jackson.databind.JsonMappin ...
- [luogu1970][花匠]
题目地址 https://www.luogu.org/problemnew/show/P1970 题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定 把这排中的一部 ...
- 一文看懂npm、yarn、pnpm之间的区别
文作者对比了当前主流的包管理工具npm.yarn.pnpm之间的区别,并提出了合适的使用建议,以下为译文: NPM npm是Node.js能够如此成功的主要原因之一.npm团队做了很多的工作,以确保n ...
- python--数据类型bytes
在Python3以后,字符串和bytes类型彻底分开了.字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样 ...
- 2018.11.26 QLU新生赛部分题解
问题 L: 寄蒜几盒? 题目描述 现在有一个圆圈,圆圈上有若干个点,请判断能否在若干个点中选择三个点两两相连组成一个等边三角形? 这若干个点在圆圈上按顺时针顺序分布. 如果可以的话输出"Ye ...
- macs 学习
点击 首先andriomianfest主配文件(主要配置文件),来启动主要的activity对象,然后通过该对象调用create方法来加载布局文件xml active通过布局文件的控件生成相应的对象. ...
- Explicit Constructors(显式构造函数)
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // ...
- Luogu P1247 取火柴游戏
题目链接 \(Click\) \(Here\) 这个题目其实就是一个\(Nim\)游戏的简单模型.对于单个的\(Nim\)游戏(单独一堆的情况),数学归纳可证其\(SG\)函数值等于其石子个数.所以对 ...
- 9.Django Admin编写
##Admin功能添加 ##效果图 ##添加时间日期 添加新的字段后需要重新数据移值操作 修改models.py auto_now是自定设置日期为当前日期 修改日期:null=True