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排序示例代码
Oct 14 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
javascript随机抽取0-100之间不重复的10个数
Feb 25 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
socket.io学习教程之基本应用(二)
Apr 29 Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
简介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实现小型站点广告管理(修正版)
2006/10/09 PHP
php一些公用函数的集合
2008/03/27 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
js 判断脚本加载完毕的代码
2011/07/13 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Python实现定时任务
2017/02/08 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
python线程中同步锁详解
2018/04/27 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
物流合作计划书
2014/01/10 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
护士辞职信怎么写
2015/02/27 职场文书
电台广播稿范文
2015/08/19 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书