JavaScript仿商城实现图片广告轮播实例代码


Posted in Javascript onFebruary 06, 2016

大家在逛购物商城的时候不知道有没有注意到商城首页上面都会有各种轮播广告,效果非常好,下面小编给大家整理特此分享给大家学习。具体内容如下所示:

1.HTML框架

如下图,分为三个部分,首先有个div承载,然后一个ul存放图片,一个ul存放数字,再两个button即可

 

<div class="out">
<ul class="img">
<li><img src="img/1.png" alt=""></li>
<li><img src="img/2.png" alt=""></li>
<li><img src="img/3.png" alt=""></li>
<li><img src="img/4.png" alt=""></li>
<li><img src="img/5.png" alt=""></li>
</ul>
<ul class="num">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<input class="left btn" type="button" value="<">
<input class="right btn" type="button" value=">">
</div>

2.CSS配置

首先外框div要设置和图片大小一致,并且居中对齐,position设置为相对定位,因为后面的图片什么的都是相对这个大框来绝对定位的

//div外框
.out{
width: 560px;
height: 350px;
margin: 0 auto;
position: relative;
border: 2px solid red;
}

接着设置图片,五张图片叠加这个通过absolute这个属性来实现,因为上面我们把父级容器设置为relative,所以里面的子元素都是相对父级div来绝对定位的

.img {
list-style-type: none;
}
.img li{
position: absolute;
top:0;
cursor: pointer;
}

接下来的其他元素我会用注释写到代码中

.num{
list-style-type: none;
/*这个属性会使得text-align失效,所以下面手动写上宽度即可*/
position: absolute;
width: 100%;
bottom:0;
text-align: center;
}
.num li{
width: 20px;
height: 20px;
/*行高这个属性使得元素垂直居中*/
line-height: 20px;
text-align: center;
/*inline-block使得所有元素按行排列*/
display: inline-block;
background-color: #4a4a4a;
color: #fff;
border-radius: 50%;
/*鼠标放上去会有小手*/
cursor: pointer;
}
/*鼠标放到图片上的时候才显示btn*/
.out:hover .btn{
display: block;
}
.btn{
width: 30px;
height: 50px;
position: absolute;
display: none;
/*通过top和margin来定位属性到垂直居中*/
top: 50%;
margin-top: -30px;
border: 0;
/*使用rgba可以修改透明度*/
background-color: rgba(0,0,0,.5);
color: #fff;
}
.right{
right: 0;
}

效果如下:

 

3.jquery控制轮播

实现手动轮播

意思就是鼠标移到下面数字,就显示对应的图片

//手动控制轮播图
$(".img li").eq(0).fadeIn(300);//加载页面的时候让第一个图片显示
$(".num li").eq(0).addClass("active");//给序号为1的加上红色背景
$(".num li").mouseover(function () {
//当前的数字显示红色背景,其他的数字都隐藏背景
$(this).addClass("active").siblings().removeClass("active");
//当前数字对应的图片显示,其他图片都隐藏
var index = $(this).index();
$(".img li").eq(index).stop().fadeIn(300).siblings().stop().fadeOut(300);
})

实现自动轮播

//实现自动轮播
var i = 0;//计时器控制数字
var t = setInterval(move,1500);
//该方法显示与序号对应的图片
function move() {
if (++i ==5){
i = 0;
}
$(".num li").eq(i).addClass("active").siblings().removeClass("active");
$(".img li").eq(i).stop().fadeIn(300).siblings().stop().fadeOut(300);
}
//鼠标移入后停止自动轮播
$(".out").hover(function () {
clearInterval(t);
}, function () {
t = setInterval(move,1500);
});

实现点击轮播

//按钮移动事件
$(".right").click(function () {
move();
});
$(".left").click(function () {
i = i-2;
move();
});

动态控制li数字显示数量

通过图片数量控制标签数量即可

//手动控制li数量
var size = $(".img li").size();
for (var k=1;k<=size;k++){
$(".num").append("<li>"+k+"</li>");
}
$(".num li").eq(0).addClass("active");
Javascript 相关文章推荐
基于jquery的direction图片渐变动画效果
May 24 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
js改变embed标签src值的方法
Apr 10 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
JavaScript 基础表单验证示例(纯Js实现)
Jul 20 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
react 生命周期实例分析
May 18 Javascript
简介AngularJS中$http服务的用法
Feb 06 #Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 #Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 #Javascript
详解Angularjs filter过滤器
Feb 06 #Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 #Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 #Javascript
JS通过Cookie判断页面是否为首次打开
Feb 05 #Javascript
You might like
php中目录,文件操作详谈
2007/03/19 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
php判断linux下程序问题实例
2015/07/09 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
require.js中的define函数详解
2017/07/10 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
原生js生成图片验证码
2020/10/11 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python创建xml文件示例
2017/03/22 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Python简单I/O操作示例
2019/03/18 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
销售自我评价
2013/10/22 职场文书
技校生自我鉴定
2013/12/08 职场文书
饮料业务员岗位职责
2013/12/15 职场文书
人事专员的职责
2014/02/26 职场文书
财务内勤岗位职责
2014/04/17 职场文书
护士实习求职信
2014/06/22 职场文书
公共场所标语
2014/06/30 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
校运动会广播稿300字
2014/10/07 职场文书