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 相关文章推荐
基于jquery的分页控件(C#)
Jan 06 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
Jan 15 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
Dec 05 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 Javascript
Angular 2.x学习教程之结构指令详解
May 25 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
vue+Element-ui前端实现分页效果
Nov 15 Javascript
node中使用shell脚本的方法步骤
Mar 23 Javascript
JavaScript阻止事件冒泡的方法
Dec 06 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 include_path设置技巧分享
2011/07/03 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
PHP打印输出函数汇总
2016/08/28 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
javascript globalStorage类代码
2009/06/04 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
javascript常见用法总结
2014/05/22 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
利用Python开发微信支付的注意事项
2016/08/19 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
Python列表(List)知识点总结
2019/02/18 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
计算机专业推荐信范文
2013/11/20 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
运动会入场解说词300字
2014/01/25 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
python脚本框架webpy的url映射详解
2021/11/20 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android