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 相关文章推荐
JavaScript 数组循环引起的思考
Jan 01 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
Nov 10 Javascript
Node.js调试技术总结分享
Mar 12 Javascript
jQuery模拟窗口抖动效果
Mar 15 Javascript
Layer+Echarts构建弹出层折线图的方法
Sep 25 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 Javascript
JS制作简易计算器的实例代码
Jul 04 Javascript
js+canvas实现刮刮奖功能
Sep 13 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
php自定文件保存session的方法
2014/12/10 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
Python随机生成数模块random使用实例
2015/04/13 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
python 判断网络连通的实现方法
2018/04/22 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python的常见矩阵运算(小结)
2019/08/07 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
使用python计算三角形的斜边例子
2020/04/15 Python
创建文明城市标语
2014/06/16 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
学校实习推荐信
2015/03/27 职场文书
战马观后感
2015/06/08 职场文书
个人催款函范文
2015/06/23 职场文书
工作简报格式范文
2015/07/21 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫