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 相关文章推荐
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
Apr 27 Javascript
jquery的each方法使用示例分享
Mar 25 Javascript
jquery新的绑定事件机制on方法的使用方法
Apr 15 Javascript
javascript setinterval 的正确语法如何书写
Jun 17 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
记一次react前端项目打包优化的方法
Mar 30 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 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 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
Jquery 动态生成表格示例代码
2013/12/24 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Python给图像添加噪声具体操作
2019/03/03 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
python实现大量图片重命名
2020/03/23 Python
python的列表List求均值和中位数实例
2020/03/03 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
中专生的个人自我评价
2013/12/11 职场文书
文明学生标兵事迹
2014/01/21 职场文书
创建青年文明号材料
2014/05/09 职场文书
投资建议书模板
2014/05/12 职场文书
电子专业自荐信
2014/07/01 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
我的1919观后感
2015/06/03 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
2019年最新借条范本!
2019/07/08 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
python flappy bird小游戏分步实现流程
2022/02/15 Python