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 相关文章推荐
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
node.js中的buffer.write方法使用说明
Dec 10 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
jquery实现submit提交表单
Feb 03 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
Javascript实现获取及设置光标位置的方法
Jul 21 Javascript
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 11 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
JavaScript实现九宫格拖拽效果
Jun 28 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数组输出html表格的方法
2014/02/24 PHP
smarty自定义函数用法示例
2016/05/20 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
js 数组去重的四种实用方法
2014/09/09 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python学生管理系统开发
2019/01/30 Python
Python小进度条显示代码
2019/03/05 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
给男朋友的道歉信
2014/01/12 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
音乐学专业求职信
2014/07/22 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
乔迁新居祝福语
2019/11/04 职场文书
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers