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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 Javascript
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
jQuery 图片切换插件(代码比较少)
May 07 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
js遍历子节点子元素附属性及方法
Aug 19 Javascript
整理Javascript基础语法学习笔记
Nov 29 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
Jul 11 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 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
什么是MVC,好东西啊
2007/05/03 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
php获取微信openid方法总结
2019/10/10 PHP
超清晰的document对象详解
2007/02/27 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
import与export在node.js中的使用详解
2017/09/28 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
神经网络python源码分享
2017/12/15 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Django实现分页显示效果
2019/10/31 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
运动会领导邀请函
2014/02/05 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js