jQuery代码实现图片墙自动+手动淡入淡出切换效果


Posted in Javascript onMay 09, 2016

相关阅读:

在网页上经常可以看到有背景图片可以自动淡入淡入切换的效果,非常漂亮,实用性也非常高。今天小编抽个时间给大家分享基于jquery代码实现图片墙自动+手动淡入淡出切换效果,一起学习吧!

先给大家展示效果图,如果大家觉得还不错,请参考具体实现代码。

jQuery代码实现图片墙自动+手动淡入淡出切换效果

添加一个div(class=container),设置宽度和高度,这里设置了宽800px,高450px。添加居中的定位。在div里面添加一个ul(class="img")列表用来盛放图片,设置ul里面的li标签position为absolute,这时图片会重合在一起,同时设置display为none。图片设置宽度和高度与container相同。在container里面再添加一个ul列表用来盛放下面的一排数字,然后进行相应的定位和设置。添加两个div:left和right,分别是左右两个按钮,进行相应的定位和设置,里面的箭头分别是大于号和小于号。

实现思路及原理介绍:

当鼠标移动到对应的数字上面的时候,用$(this).index()获得数字所在容器里面的序号,然后将序号传递到eq()函数里面获得 li 标签,然后添加函数fadeIn();这样隐藏的图片就显示出来了,同时调用sibling().fadeOut(),让同级的兄弟节点隐藏起来,这样之前显示的图片就隐藏了起来。

添加setInterval()函数,让图片每隔相同的时间变换一次。

我觉得一个主要的问题就是自动切换和手动切换的冲突,当鼠标移动到图片上面的时候应该停止自动切换,在这里用的方法是:

给container添加hover函数,当鼠标移动到container里面的时候用clearInterval()函数去掉时间间隔函数,这样当鼠标移动到图片上面的时候,图片就不会切换了,当鼠标移出的时候添加setInterval()函数。这样图片就能继续切换了。

注意:i 和 t 需要设置成全局变量,这样不同的函数才能共用。i 表示当前显示图片的索引。t 是setInterval的ID。当鼠标移出的时候不用再var一个t了,只需:t=setInterval(time_fun,1500);即可。

eq(n):找到第n个元素

eg:$('li').eq(2).css('background-color', 'red');//设置第二个li标签的背景颜色为红色

index():找到该元素的索引值

有兴趣的研究一下代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-">
<title>jquery_img_switch</title>
</head>
<style type="text/css">
*{
margin: ;
padding: ;
}
.container{
width: px;
height: px;
margin: px auto;
position: relative;
}
.container .img{
list-style: none;
/*position: absolute;*/
}
.container .img li{
position: absolute;
display: none;
}
.container .img img{
width: px;
height: px;
}
.container .num{
position: absolute;
list-style: none;
font-size: ;
bottom: px;
width: %;
text-align: center; 
}
.container .num li{
width: px;
height: px;
background: rgba(,,,.);
border-radius: %;
color: #;
display: inline-block;
line-height: px;
text-align: center;
font-size: px;
margin-right: px;
cursor: pointer;
}
.left, .right{
width: px;
height: px;
text-align: center;
line-height: px;
background-color: rgba(,,,.);
color: #fff;
position: absolute;
top: %;
margin-top: -px; 
font-size: px;
cursor: pointer;
}
.left{
left: px;
}
.right{
right: px;
}
.container .num .active{
background: rgba(,,,);
color: #fff;
}
</style>
<script type="text/javascript" src="../jquery-...min.js"></script>
<script type="text/javascript">
var i=;
var t;
$(document).ready(function(){
$(".container .img li").eq(i).fadeIn().siblings().fadeOut(); 
$(".container .num li").on("mouseover",active);
t=setInterval(time_fun,);
$(".container").hover(in_fun,out_fun);
$(".container .left").on("click",left_fun);
$(".container .right").on("click",right_fun);
});
function time_fun(){
i++;
if(i==){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
function in_fun(){
clearInterval(t);
}
function out_fun(){
t=setInterval(time_fun,);
}
function active(){
$(this).addClass("active").siblings().removeClass("active");
$(".container .img li").eq($(this).index()).fadeIn().siblings().fadeOut();
i=$(this).index();
}
function left_fun(){
i--;
if(i==-){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
function right_fun(){
i++;
if(i==){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
</script>
<body>
<div class="container">
<ul class="img">
<li ><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
</ul>
<ul class="num">
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="left"><</div>
<div class="right">></div>
</div>
</body>
</html>

以上是小编给大家带来的jQuery代码实现图片墙自动+手动淡入淡出切换效果,希望对大家有所帮助,同时也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
Firefox中beforeunload事件的实现缺陷浅析
May 03 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
jQuery短信验证倒计时功能实现方法详解
May 25 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 Javascript
Vue中rem与postcss-pxtorem的应用详解
Nov 20 Javascript
jQuery绑定事件的几种实现方式
May 09 #Javascript
jquery实现左右无缝轮播图
Jul 31 #Javascript
node.js从数据库获取数据
May 08 #Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 #Javascript
基于jquery实现最简单的选项卡切换效果
May 08 #Javascript
基于javascript实现图片滑动效果
May 07 #Javascript
基于jquery实现图片放大功能
May 07 #Javascript
You might like
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
python logging日志模块以及多进程日志详解
2018/04/18 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
使用django实现一个代码发布系统
2019/07/18 Python
pygame实现打字游戏
2021/02/19 Python
python实现坦克大战
2020/04/24 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
儿科护理实习自我鉴定
2013/09/19 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
母校寄语大全
2014/04/10 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
作风建设整改方案
2014/10/27 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
圆明园观后感
2015/06/03 职场文书
Django如何与Ajax交互
2021/04/29 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL