效果图如上:

需求:图片自动轮播,鼠标移上停止播放,离开恢复播放,箭头切换图片。

html代码

<!--轮播图大盒子开始-->
<div class="wrap"><!--大盒子上部分轮播图--><div class="wrapUp"><ul><li class="cur"><a href="#"><img src="data:images/banner/banner01.jpg" alt=""></a></li><li><a href="#"><img src="data:images/banner/banner02.jpg" alt=""></a></li><li><a href="#"><img src="data:images/banner/banner03.jpg" alt=""></a></li><li><a href="#"><img src="data:images/banner/banner04.jpg" alt=""></a></li></ul><span class="btn left">&lt;</span><span class="btn right">&gt;</span></div><!--大盒子下部分标题--><div class="wrapDown"><ol><li class="cur">大牌特惠</li><li>住进北欧</li><li>绵绵爱意</li><li>母婴盛宴</li></ol><!--底部红色下划线--><span class="line"></span></div>
</div>

CSS样式代码

<style>*{margin: 0;padding:0;list-style: none}/*设置页面图片背景*/body{background:url("images/banner/bg.jpg")no-repeat center top;}/*大盒子样式宽高,盒子投影,内边距*/.wrap{width: 1170px;height: 452px;background:rgba(255,255,255,0.5);margin:30px auto;padding:12px 12px 0;box-sizing:border-box;box-shadow:0 0 10px rgba(0,0,0,0.4);overflow: hidden}
/*图片盒子宽高,定位样式*/.wrapUp{width: 1146px;height: 400px;position: relative;}.wrapUp li{position:absolute;left:0;top:0;display: none;}.wrapUp .cur{display: block;}/*盒子两边箭头样式*/.wrapUp .btn{width: 33px;height: 66px;background:rgba(0,0,0,0.2);position: absolute;color:#ffffff;font-size: 40px;line-height: 66px;text-align: center;font-family:"黑体";border-radius:5px;top:50%;transform:translateY(-50%);cursor: pointer;transition:0.3s}/*盒子左箭头样式*/.wrapUp .left{left: -45px}.wrapUp .right{right: -45px}/*盒子移入显示*/.wrap:hover .wrapUp .left{left:0}.wrap:hover .wrapUp .right{right:0}/*盒子不透明度变化*/.wrapUp .btn:hover{background:rgba(0,0,0,0.4);}/*大盒子下部分标题样式*/.wrapDown{width: 800px;height: 40px;margin:0 auto;position: relative}/*大盒子下部分内容li样式*/.wrapDown li{width: 200px;height: 40px;font-size: 15px;line-height: 40px;float: left;text-align: center;color: #666666;position: relative;cursor: pointer}/*每个li后面的分割线样式*/.wrapDown li:after{content:"|";position: absolute;right: 0;top:0;color: #cccccc}/*设置第一个li字样式*/.wrapDown .cur{color:red;}/*最后一个li不需要分割线*/.wrapDown li:last-child:after{display: none}/*底部红色下划线相对于底部盒子定位*/.wrapDown .line{width: 200px;height: 2px;background:deeppink;left: 0;bottom:-1px;position: absolute}</style>

jQuery代码

<script>//鼠标以上通过索引值切换//图片//当前文字颜色$(".wrapDown li").mouseenter(function () {//定义变量接收索引值var index=$(this).index();console.log(index);play(index);//根据索引值图片/*  $(".wrapUp li").eq(index).stop().fadeIn().siblings().stop().fadeOut();//文字切换$(".wrapDown li").eq(index).addClass("cur").siblings().removeClass("cur");//滑动线切换$(".line").stop().animate({left:index*200},100)*/});//把切换封装成一个函数//自动播放//定义播放function play(aaa){$(".wrapUp li").eq(aaa).stop().fadeIn().siblings().stop().fadeOut();//文字切换$(".wrapDown li").eq(aaa).addClass("cur").siblings().removeClass("cur");//滑动线切换$(".line").stop().animate({left:aaa*200},100)}var timer=null;//先设置个定时器timer 让值为空var num=0;//需要有一个索引数字控制它动,初始为0var len=$(".wrapDown li").length;//需要有一个索引值和num对比,为li的个数。//封装自定义播放动画function autoplay() {timer=setInterval(function () {//此处的timer是给定时器赋值num++;if(num>len-1){num=0;}play(num);console.log(num);},1000);}//鼠标以上停止,鼠标离开调用自动播放$(".wrap").hover(function () {clearInterval(timer);},function () {autoplay();});
//箭头点击切换图片$(".right").click(function () {num++;if(num>len-1){num=0;}play(num);});$(".left").click(function () {num--;if(num<0){num=len-1;}play(num);});
</script>

html部分步骤:
1、新建大盒子,上部分包裹轮播图和底部四个标题选项和红色 下划线。
1.1轮播图div盒子部分包含两个箭头用两个span包裹。
1.2轮播图部分div用ul插入四张图。
2、大盒子下部分是标题部分。

css样式步骤分析:
版心大盒子样式
版心部分,要给高和内边距,背景色为白色半透明,盒子投影。
盒子内边距部分,给图片一个宽,增加图片的内边距后,盒子宽度增加所以要用border-box内减去。半透明背景rgba(255,255,255,0.5);
盒子投影:box-shadow:0 0 5px rgba(0,0,0,0.3) }
第一个值是水平,第二值是垂直,第三个值模糊程度,第四个值是颜色。
图片盒子样式
四张图是淡入淡出可以用绝对定位将所有图片放在一起。
给图片盒子设置图片的宽高,然后给盒子相对定位,给li绝对定位,left,top为0。显示在第一张的是最后一个li的图片,因为层级关系。
给所有li设置隐藏。给第一个li添加类名设置display显示。
箭头盒子样式
箭头span相对于图片盒子定位后宽高才可以生效,有圆角和宽高,黑色半透明。
箭头变大设置font-family:"黑体"。
箭头盒子居中top:50%和transform:translateY(-50%);X是水平偏移,Y垂直偏移
箭头盒子是在外面,鼠标进入大盒子箭头显示,.wrap:hover .wrapUp .left{left:0}意思是
鼠标进入大盒子wrap控制左边箭头。然后给箭头盒子设置过渡动画。
鼠标移上,箭头盒子不透明度变化,调整不透明值。
图片底部标题样式
根据标题数量设置盒子的宽度高度,然后用伪类元素after和定位设置每个li后面的分割线。

JS代码部分
通过底部li的索引切换图片、文字颜色和底部红色滑动线位置。
1、鼠标移入底部li,var index=$(this).index();
2、根据索引值图片切换
$(".wrapUp li").eq(index).stop().fadeIn().siblings().stop().fadeOut();
图片、绑定的索引、淡入、其它兄弟淡出
3、文字切换,第一个li文字添加样式类名
$(".wrapDown li").eq(index).addClass("cur").siblings().removeClass("cur");
4、滑动线滑动切换
$(".line").stop().animate({left:index*200},100)
往右边滑动,移动index*滑动线宽度的距离。
用户触发的一般都要加stop()

定时器自动播放
格式:
需要一个变量var Timer=null;
然后再需要一个变量var num=0;需要有一个数字控制图片动,初始为0
一共4个图,所以要num++;而且要在定时器里面做一个如果num大于索引值最大为3的判断,num就变成0,这样图片会从第一张重新开始播放。
setInterval为定时调用的函数,调用执行文字图片滑动线的切换。

转载于:https://www.cnblogs.com/liout/p/11074618.html

jQuery无缝轮播图思路详解-唯品会相关推荐

  1. 制作一个简单的轮播图(详解新手教学)

    制作一个简单的轮播图(详解新手教学) 相信很多初学者,无论是前端还是后端,对于制作页面时,都想自己亲手制作一个轮播图. 如何制作一个轮播图: 基础知识:有HTML,Css,js基础 本文使用技术: H ...

  2. vue 实现无限轮播_使用Vue制作图片轮播组件思路详解

    之前一直都没有认真的写过一个组件.以前在写业务代码的过程中,都是用的别人封装好的组件,这次尝试着写了一个图片轮播组件,虽然比不上知名的轮播组件,但它的功能基本完整,而且在写这个组件的过程中,学的东西也 ...

  3. Jquery无缝轮播图

    无缝轮播图示例如下 注意事项 html里面一定要引入jquery的js文件 Jquery下载地址 HTML代码 <div class="banner"><ul c ...

  4. bootstrap轮播图代码详解

    最近在做个人简历网站,然后要用到轮播图,上网查了一下,以下为轮播图代码: 下面展示一些 内联代码片. <!-- 轮播(Carousel)项目 --> <div id="my ...

  5. Vue.js轮播图走马灯 (详解)

    直接上代码: 轮播图1: html <template><div><div class="back_add"><div class=&qu ...

  6. jQuery无缝轮播图代码

    // html 代码 <div class="banner"><ul class="img"><li><a href= ...

  7. javaScript小案例------js实现无缝轮播图效果篇

    原生js书写无缝轮播图 javaScript无缝轮播图思路及源码 无缝轮播图效果 总体思路 下面附上代码: html css animate.js index.js javaScript无缝轮播图思路 ...

  8. jQuery实现轮播图(无缝轮播,附效果图),代码有详解。

    jQuery实现轮播图 这里用了一些有颜色的div块当做图片,复制之后可以直接用,有需要的话再根据自己的需求替换就可以了. 功能: (1)左右无缝轮播. (2)鼠标移上去会停止,移走继续动. (3)点 ...

  9. jquery实现动态左右无缝轮播图

    JQ代码实现动态无缝轮播图功能 相比之下 运用jquery比js原生代码 书写更为方便 简介 通俗易懂 以下为代码: <!DOCTYPE html> <html><hea ...

最新文章

  1. 感觉 Data Access Application Block(DAAB) 里也有可能写得不太好的地方
  2. 创建试图 失败_在失败中学习,MIT新研究显示,机器可以像婴儿一样学会理解人类目标...
  3. 【Swift】在Swift中获取当前的wifi SSID
  4. 多线程并发神器--ThreadLocal
  5. C语言实现静态顺序表
  6. [转载] python中for语句用法_详解Python中for循环的使用_python
  7. JDK1.3安装出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory Done.
  8. caffe linux 教程,Caffe 深度学习入门教程 - 安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN_Linux教程_Linux公社-Linux系统门户网站...
  9. Git系列笔记之一:git的简介及基本配置
  10. PB代码动态解析执行器
  11. mysql之触发器before和after的区别
  12. linux下矩阵键盘设备名,Linux下矩阵键盘驱动分析与移植
  13. 超详细汇总21个mysql优化实践【收藏版MySQL优化】
  14. mysql数据库的简单查询一般是查询什么,MySQL的简单查询语句(十五)
  15. Pale Moon 15.1 发布,苍月浏览器
  16. 【雕爷学编程】Arduino动手做(76)---2路光耦继电器模块
  17. linux 校园网 自动认证,关于在Linux操作系统下校园网 瑞捷的认证(xrgsu)
  18. AHRS系统的基本构成
  19. 面向对象:杭州的下雪天,想带你去湖心亭看雪
  20. 全数字(IP)楼宇对讲系统简介

热门文章

  1. ISTA算法-图像压缩感知算法之ISTA算法
  2. zepplin环境搭建——好用到手软
  3. 记忆化搜索 Memorization Search
  4. 更换人工晶体的最佳时期是什么时候?
  5. Pyecharts地图标点+表格可视化
  6. a元素的两个重要功能和表格布局
  7. 使用python 520表白吧(转)
  8. ssm+java计算机毕业设计冷链物流管理系统的设计与开发90b3l(程序+lw+源码+远程部署)
  9. 如何生成一张证书图片
  10. 设计一个Point(二维图中的点)类