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 Eval 函数使用
Mar 23 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
jQuery中ajax的使用与缓存问题的解决方法
Dec 19 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
JavaScript数据结构和算法之二叉树详解
Feb 11 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 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
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
node.js实现端口转发
2016/04/14 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
python定时执行指定函数的方法
2015/05/27 Python
python比较两个列表大小的方法
2015/07/11 Python
Python实战购物车项目的实现参考
2019/02/20 Python
python实现电子书翻页小程序
2019/07/23 Python
Python制作词云图代码实例
2019/09/09 Python
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
extern是什么意思
2016/03/10 面试题
纠纷协议书
2014/04/16 职场文书
完整版商业计划书
2014/09/15 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
如何用python插入独创性声明
2021/03/31 Python
opencv 分类白天与夜景视频的方法
2021/06/05 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server