Javascript实现图片轮播效果(一)让图片跳动起来


Posted in Javascript onFebruary 17, 2016

图片轮播效果,在各大网站的首页都能看到,比较常见。下面小编给大家分享这一效果的简单实现。

1.图片跳动起来

2.图片序列控制的实现

3.前后按钮控制的实现

这篇文章来看图片按照间隔时间进行切换.

我们先把结构代码完成,这个我就不做详细的讲解了.先给大家展示下效果图:

Javascript实现图片轮播效果(一)让图片跳动起来

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
* {
box-sizing: border-box;
}
a {
text-decoration: none;
}
ul,ol,li{
list-style: none;
margin: 0;
padding: 0;
}
#slider{
width: 800px;
height: 300px;
overflow: hidden;
position: relative;
margin: 0 auto;
}
#slider ul{
width: 2400px;
position: relative;
}
#slider ul:after{
content: " ";
width: 0;
height: 0;
display: block;
}
#slider ul li{
float: left;
width: 800px;
height: 300px;
overflow: hidden;
}
#slider ul li img{
width: 100%;
}
#slider ol{
position: absolute;
bottom: 10px;
left: 46%;
}
#slider ol li{
display: inline-block;
}
#slider ol li a{
display: inline-block;
padding:4px 8px;
border-radius:15px;
background-color: #000;
color: #fff;
}
#slider .prev, #slider .next{
display: inline-block;
position: absolute;
top: 49%;
background-color: #000;
opacity: 0.6;
color: #fff;
padding: 3px;
}
#slider .prev{
left: 10px;
}
#slider .next{
right: 10px;
}
</style>
</head>
<body>
<div id="slider">
<ul>
<li> <img src="http://www.bates-hewett.com/images/sliders/slider-1.jpg" /> </li>
<li> <img src="http://www.bates-hewett.com/images/sliders/slider-2.jpg" /> </li>
<li> <img src="http://www.bates-hewett.com/images/sliders/slider-3.jpg" /> </li>
</ul>
<ol>
<li> <a href="#">1</a> </li>
<li> <a href="#">2</a> </li>
<li> <a href="#">3</a> </li>
</ol>
<a href="#">上一张</a>
<a href="#">下一张</a>
</div>
</body>
</html>

好的,现在我们来通过JS控制图片的跳转.

首先我们需要找到图片所在的位置,这里我们是通过ul来进行布局的所以首先得找到UL下的LI的数目

接着让图片一张一张的展示,我们使用了视窗的模式,就是遮罩层的模式.#slider是一个视窗,ul是视窗外的景色,而ul得景色是横向排版的

然后就是让外面的景色显示为视窗的大小,也就是让每一张图片作为每一次的视窗景色,这里就是控制图片的大小要与视窗同等大小.

上面讲解的是一个概念,也就是布局的处理,下面我们JS的控制了,要实现图片间隔的显示不同.我们就需要用到JS的setInterval或者setTimeout.这里我们使用setInterval(因为这个用起来方便.)

每跳转一次,我们控制的是UL的position的left,这样就可以让ul下的景色,在每一次都是显示不一样,而这个left是根据视窗的宽度来决定,第一张left当然是-800 * 0 ,第二种就是 -800*1,第三种是-800*2...依次类推.那我们就可以得出下面的代码

<script>
(function(){
var slider = document.getElementById("slider");
var imgul = slider.getElementsByTagName("ul")[0];
var imglis = imgul.getElementsByTagName("li");
var len = imglis.length;
var index = 0;
setInterval(function(){
if(index >= len){
index = 0;
}
imgul.style.left = - (800 * index) + "px";
index++;
},2000);
})();
</script>

JS代码这样看起来就很简单了. 我这里是设置2秒跳转依次,然后跳转的次数大于等于图片的数目后,让其返回到第一张图片.

Javascript实现图片轮播效果(一)让图片跳动起来 

以上内容是小编给大家介绍Javascript实现图片轮播效果(一)让图片跳动起来的全部内容,希望对大家有所帮助。

Javascript 相关文章推荐
JavaScript排序算法之希尔排序的2个实例
Apr 04 Javascript
window resize和scroll事件的基本优化思路
Apr 29 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 Javascript
基于javascript简单实现对身份证校验
Jan 25 #Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 #Javascript
Bootstrap布局组件应用实例讲解
Feb 17 #Javascript
深入php面向对象、模式与实践
Feb 16 #Javascript
三个js循环的关键字示例(for与while)
Feb 16 #Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 #Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 #Javascript
You might like
星际争霸兵种名称对照表
2020/03/04 星际争霸
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
js断点调试经验分享
2017/12/08 Javascript
浅谈js闭包理解
2019/04/01 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
uni-app实现点赞评论功能
2019/11/25 Javascript
js实现数字滚动特效
2019/12/16 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现图片上添加图片
2019/11/26 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
会计专业毕业生自我评价
2013/09/25 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
学生会干部自荐信
2014/02/04 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
工程资料员岗位职责
2014/03/10 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js
正则表达式基础与常用验证表达式
2022/06/16 Javascript