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 相关文章推荐
关于juqery radio写法的兼容性问题(新老版本jquery)
Jun 14 Javascript
javascript 数据类型转换(parseInt,parseFloat)
Jul 20 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 Javascript
原生javascript兼容性测试实例
Jul 01 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
JS中数组Array的用法示例介绍
Feb 20 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
Node.js 如何利用异步提升任务处理速度
Jan 07 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
Oct 09 Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
python局部赋值的规则
2013/03/07 Python
python从入门到精通(DAY 3)
2015/12/20 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Python虚拟环境venv用法详解
2020/05/25 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
优秀应届生推荐信
2013/11/09 职场文书
经典毕业生求职信
2014/07/12 职场文书
2014年文员工作总结
2014/11/18 职场文书
嘉宾邀请函
2015/01/31 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
javascript函数式编程基础
2021/09/15 Javascript