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 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
动态样式类封装JS代码
Sep 02 Javascript
超简单的jquery的AJAX用法
May 10 Javascript
jquery动态加载js三种方法实例
Aug 03 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
JS倒计时代码汇总
Nov 25 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
Mar 11 Javascript
Vue使用lodop实现打印小结
Jul 06 Javascript
使用p5.js临摹动态图片
Nov 04 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
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
Python中特殊函数集锦
2015/07/27 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
师范应届生教师求职信
2013/11/05 职场文书
面试求职的个人自我评价
2013/11/16 职场文书
大学生活自我评价
2014/04/09 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技
利用Python实时获取steam特惠游戏数据
2022/06/25 Python