jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果 - Web前端
作者:98wpeu发布时间:2026-10-05分类:网页前端技术浏览:7
导读:主要的变化点有:把‘下一条'、‘上一条'的click事件抽象到一个函数showNext中。添加SetInterval,添加selector元素的hover事件。好了,我们一个个的看...
主要的变化点有:把‘下一条'、‘上一条'的click事件抽象到一个函数showNext中。添加SetInterval,添加selector元素的hover事件。好了,我们一个个的看。
showNext函数:
复制代码 代码如下:
//显示函数
function showNext(flag) {
//隐藏导航
$(config.selector).find('a').CSS('display', 'none');
//创建遮罩
$.tranzify.createOverlay(config);
//获取当前显示状态的图片
var currImg = $('.' + config.visibleclass, $(config.selector));
if (flag === true) {
//当前图片不是第一张图片
if (currImg.PRev().filter('img').length > 0) {
//将上一张图片设置为可显示状态
currImg.removeClass(config.visibleClass).prev().addClass(config.visibleClass);
} else {
//设置最后一张图片为可显示状态
currImg.removeClass(config.visibleClass);
$(config.selector).find('img').eq(imgLength - 1).addClass(config.visibleClass);
}
} else {
//当前图片不是最后一张图片
if (currImg.next().filter('img').length > 0) {
//将下一张图片设置为可显示状态
currImg.removeClass(config.visibleClass).next().addClass(config.visibleClass);
} else {
//设置第一张图片为可显示状态
currImg.removeClass(config.visibleClass);
$(config.selector).find('img').eq(0).addClass(config.visibleClass);
}
}
//运行遮罩效果
$.tranzify.runTransition(config);
}
之所以要把他抽出来,是因为下面的setInterval里面也要用到它,不想有太多重复的代码,所以又必要抽出来,这样统一管理。接下来我们来看setintervale。
复制代码 代码如下:
//设置循环函数
config.interval = setinterval(showNext, (config.multi * 150) + 3000);
其实就是添加一个循环函数,每个多少秒,运行一次showNext函数,显示下一张图片。这里要注意的一点是间隔时间的计算。还记得上一章中runTransition函数中给Animate对象设置的间隔时间吗?横向显示设置为slow,也就是600毫秒。每一帧竖向显示设置的时间是150毫秒,一共有config.multi帧。(config.multi * 150)肯定大于600,所以我们这里就取(config.multi * 150)作为时间标准。为了防止动画刚运行完,就接着显示下一张图片,我们加了额外的3秒钟时间。
添加完循环函数后,我们为selector对象添加hover事件,当鼠标移动到对象上时,移出interval,鼠标移出时添加interval。
复制代码 代码如下:
//鼠标移动到对象上,移出循环函数;鼠标移出,添加循环函数
$(config.selector).hover(function () {
clearInterval(config.interval);
}, function () {
config.interval = setInterval(showNext, (config.multi * 150) + 3000);
});
这里我们要注意的是,我们把setInterval创造的对象传给了config.interval。这样做事为了保证上一步中创建的循环函数,删除的循环函数和删除的循环函数是同一个对象。很忌讳把setInterval创建的对象直接传给没有声明的interval,像这样:
复制代码 代码如下:
interval = setInterval(showNext, (config.multi * 150) + 3000);
这样操作时把他传给了Window对象的interval,很容易引起代码冲突。比如如果别的代码或者插件里面,也创建了一个setInterval对象,也同样传给了interval(等同于window.interval),那我们插件的clearInterval就会影响到别人代码的正常运行,同理别人的代码也会影响到我们。
最后为了代码的健壮性,我们给createOverlay添加了下面的代码,保证同时只有一个遮罩层:
复制代码 代码如下:
//判断是否有没有运行完的补间动画,存在则立即结束动画,移出对象
var transOverlay = $('#' + config.contAInerID);
if (transOverlay) {
transOverlay.stop(true, true);
transOverlay.remove();
}
好了,需要讲解的对象都讲完了,大家还是直接下demo看效果吧。
demo下载地址:jQuery.animation.tranzify_improve.js
showNext函数:
复制代码 代码如下:
//显示函数
function showNext(flag) {
//隐藏导航
$(config.selector).find('a').CSS('display', 'none');
//创建遮罩
$.tranzify.createOverlay(config);
//获取当前显示状态的图片
var currImg = $('.' + config.visibleclass, $(config.selector));
if (flag === true) {
//当前图片不是第一张图片
if (currImg.PRev().filter('img').length > 0) {
//将上一张图片设置为可显示状态
currImg.removeClass(config.visibleClass).prev().addClass(config.visibleClass);
} else {
//设置最后一张图片为可显示状态
currImg.removeClass(config.visibleClass);
$(config.selector).find('img').eq(imgLength - 1).addClass(config.visibleClass);
}
} else {
//当前图片不是最后一张图片
if (currImg.next().filter('img').length > 0) {
//将下一张图片设置为可显示状态
currImg.removeClass(config.visibleClass).next().addClass(config.visibleClass);
} else {
//设置第一张图片为可显示状态
currImg.removeClass(config.visibleClass);
$(config.selector).find('img').eq(0).addClass(config.visibleClass);
}
}
//运行遮罩效果
$.tranzify.runTransition(config);
}
之所以要把他抽出来,是因为下面的setInterval里面也要用到它,不想有太多重复的代码,所以又必要抽出来,这样统一管理。接下来我们来看setintervale。
复制代码 代码如下:
//设置循环函数
config.interval = setinterval(showNext, (config.multi * 150) + 3000);
其实就是添加一个循环函数,每个多少秒,运行一次showNext函数,显示下一张图片。这里要注意的一点是间隔时间的计算。还记得上一章中runTransition函数中给Animate对象设置的间隔时间吗?横向显示设置为slow,也就是600毫秒。每一帧竖向显示设置的时间是150毫秒,一共有config.multi帧。(config.multi * 150)肯定大于600,所以我们这里就取(config.multi * 150)作为时间标准。为了防止动画刚运行完,就接着显示下一张图片,我们加了额外的3秒钟时间。
添加完循环函数后,我们为selector对象添加hover事件,当鼠标移动到对象上时,移出interval,鼠标移出时添加interval。
复制代码 代码如下:
//鼠标移动到对象上,移出循环函数;鼠标移出,添加循环函数
$(config.selector).hover(function () {
clearInterval(config.interval);
}, function () {
config.interval = setInterval(showNext, (config.multi * 150) + 3000);
});
这里我们要注意的是,我们把setInterval创造的对象传给了config.interval。这样做事为了保证上一步中创建的循环函数,删除的循环函数和删除的循环函数是同一个对象。很忌讳把setInterval创建的对象直接传给没有声明的interval,像这样:
复制代码 代码如下:
interval = setInterval(showNext, (config.multi * 150) + 3000);
这样操作时把他传给了Window对象的interval,很容易引起代码冲突。比如如果别的代码或者插件里面,也创建了一个setInterval对象,也同样传给了interval(等同于window.interval),那我们插件的clearInterval就会影响到别人代码的正常运行,同理别人的代码也会影响到我们。
最后为了代码的健壮性,我们给createOverlay添加了下面的代码,保证同时只有一个遮罩层:
复制代码 代码如下:
//判断是否有没有运行完的补间动画,存在则立即结束动画,移出对象
var transOverlay = $('#' + config.contAInerID);
if (transOverlay) {
transOverlay.stop(true, true);
transOverlay.remove();
}
好了,需要讲解的对象都讲完了,大家还是直接下demo看效果吧。
demo下载地址:jQuery.animation.tranzify_improve.js
相关推荐
- jQuery使用数组编写图片无缝向左滚动 - Web前端
- jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码 - Web前端
- jquery 经典动画菜单效果代码 - Web前端
- jquery 图片Silhouette Fadeins渐显效果 - Web前端
- jQuery animate(滑块滑动效果代码) - Web前端
- 再分享70+免费的jquery 图片滑块效果插件和教程 - Web前端
- 推荐6款基于jQuery实现图片效果插件 - Web前端
- jquery提示效果实例分析 - Web前端
- 一个实用的图片切换支持点击切换和自动轮播 - Web前端
- jquery网页回到顶部效果(图标渐隐,自写) - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 8分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


