做项目时想省事儿写的一个JQ插件,新手练习,敬请拍砖斧正。
简介:给一个对象绑定点击函数,可以动画居中渐显弹出任意一个别的对象(当然是在当前页面中的,是否隐藏无所谓)。点击后弹出遮罩和对象,关闭后的DOM结构与点击前一样,释放所有资源。可任意绑定多个对象。
代码中亦有注解,有演示文件附件下载。
;(function(){
/*
说明:
给任意触发物件加上弹出任意对象渐显动画效果,弹出位置为物件原始位置,自动遮罩,自动渐显,自动屏幕居中。宽高和时间可控。
一般用作图片显示,如有其它用途,简单修改即可,理论上兼容所有浏览器,硬盘和内存占用均较低
参数:
triggerId 触发点ID,没有则返回
resourcId 原始资源ID
popW 弹出后的宽,默认为图片显示宽
popH 弹出后的高,默认为图片显示高
dure 弹出时间, 默认为1000毫秒
closeId 关闭对象的ID,默认为关闭按钮
DEMO:
$.fadeOutDiv('pictureId', 'pictureId', 200, 200, 'fast');
$.fadeOutDiv('triggerId', 'pictureId', 640, 480, 'slow', 'popup_div');
*/
// 如果之前没有引用jQuery则弹出提示并退出
if ( window.jQuery ){
jQuery.extend({
fadeOutDiv: function(triggerId, srcId, popW, popH, dure, closeId){
if( !document.getElementById(triggerId) || !document.getElementById(srcId)){return false;}
/* 可修改参数区域:如必要,可根据具体情况自行修改 */
var maskId = 'div_bgmask'; // 遮罩层ID
var popupBgId = 'popup_bgdiv'; // 弹出层ID
var popupCntId = 'popup_cnt'; // 弹出层中容器ID
var popupImgId = 'popup_img'; // 弹出层中图片ID
var popupDivId = 'popup_div'; // 弹出层中DIV的ID
var popupBorderW = 23; // 弹出层的边框宽度(双边)
var popupBorderH = 31; // 弹出层的边框高度(双边)
var btnCloseId = 'btn_close'; // 弹出层关闭按钮ID
var zindex = 499; // 弹出层的Z-index
// 遮罩层语句
var bgmask = '<div id="'+ maskId +'" class="plugin_fadeoutdiv_mask" style="display:none"></div>';
// 弹出层语句
var divpopup = '<div class="plugin_fadeoutdiv" id="'+ popupBgId +'" style="position:absolute;display:none;"><span><b id="'+ btnCloseId +'"> </b><div class="clear"></div><div id="'+ popupCntId +'"><img id="'+ popupImgId +'" src="" /></div></span></div>';
/*可修改参数区域结束*/
var navW = document.documentElement.clientWidth; // 浏览器可见区域宽
var navH = document.documentElement.clientHeight; // 浏览器可见区域高
var srcW = document.getElementById(srcId).offsetWidth; // 弹出物件的原始宽
var srcH = document.getElementById(srcId).offsetHeight; // 弹出物件的原始高
var tigW = document.getElementById(triggerId).offsetWidth; // 触发物件的原始宽
var tigH = document.getElementById(triggerId).offsetHeight; // 触发物件的原始高
var tigT, tigL; // 触发物件的原始相对位置
var popW = popW || srcW;
var popH = popH || srcH;
var dure = dure || 1000;
var closeId = closeId || btnCloseId;
// 弹出层动画效果显示函数
var animaShowPopup = function(){
$('body').append(bgmask).append(divpopup);
document.getElementById(maskId).style.zIndex = zindex;
document.getElementById(popupBgId).style.zIndex = zindex;
// 得到浮动元素相对整个页面的TOP和LEFT
(function(){
var obj = document.getElementById(triggerId);
tigT = obj.offsetTop; tigL = obj.offsetLeft;
while( obj = obj.offsetParent ){
tigT += obj.offsetTop; tigL += obj.offsetLeft;
}
})();
var scrolTop = document.documentElement.scrollTop; // 当前滚动条上卷距离
var bgW = document.body.scrollWidth; // 得到全页面宽
var bgH = document.body.scrollHeight; // 得到全页面高
$('#'+maskId).width(bgW).height(bgH).show();
$('#'+popupCntId).addClass('plugin_fadeoutdiv_cnt');
var tagSrc = (document.getElementById(srcId).tagName).toLowerCase();
switch(tagSrc){
case 'object': // object对象或应单独处理
break;
case 'img': // 弹出对象为图片
var conteSrc = $('#'+srcId).attr('src') || ''; // 得到图片原始文件路径
$('#'+popupImgId).attr('src',conteSrc).css({width:tigW, height:tigH});
var act = popupImgId;
break;
case 'div': // 默认弹出对象为DIV
default:
$('#'+srcId).clone().replaceAll('#'+popupImgId).attr('id', popupDivId).css({border:'none'}).addClass('plugin_fadeoutdiv_div');
var act = popupDivId;
break;
}// end switch
$('#'+popupBgId).css({top:tigT-popupBorderH/2,left:tigL-popupBorderW/2}).animate({top:(navH-popH-popupBorderH)/2+scrolTop,left:(navW-popW-popupBorderW)/2, opacity:'show' }, dure);
$('#'+act).animate({width:popW, height:popH }, dure );
// 弹出浮动层动画效果隐藏函数
var animaHidePopup = function(){
switch(tagSrc){
case 'img': // 弹出对象为图片
var act = popupImgId;
break;
case 'div':
case 'object': // object对象或应单独处理?
default: // 默认弹出对象为DIV
var act = popupDivId;
break;
}// end switch
$('#'+popupBgId).animate({top:tigT-popupBorderH/2, left:tigL-popupBorderW/2, opacity:'hide' }, dure);
$('#'+act).animate({width:tigW, height:tigH }, dure,
function(){ $('#'+maskId).remove(); $('#'+popupBgId).remove();
});
};// end function animaHidePopup
$('#'+closeId).css({'cursor':'pointer'}).click(animaHidePopup);
};// end function animaShowPopup
$('#'+triggerId).css({'cursor':'pointer'}).click(animaShowPopup);
}// end function fadeoutdiv
});
} else { // 未加载jQuery
alert('Lib jQuery not included !!!');
return false;
}
// end jQuery fadeOutDiv Plugin
})();
分享到:
相关推荐
jQuery插件:警告-确认-提示弹出对话框效果_jquery_alert_dialogsjQuery插件:警告-确认-提示弹出对话框效果_jquery_alert_dialogsjQuery插件:警告-确认-提示弹出对话框效果_jquery_alert_dialogs
《jQuery弹出层插件:实现简单遮罩弹出框效果》 在Web开发中,弹出层(Modal)是一种常见的交互元素,用于在用户与页面进行交互时提供额外的信息或者功能。jQuery作为一款强大的JavaScript库,提供了丰富的插件来...
例如,通过`.fadeIn()`和`.fadeOut()`方法实现弹出框的渐显渐隐,或者使用`.slideToggle()`实现上下滑动效果。 3. **插件化的遮罩弹出框** 为了提高开发效率和代码复用性,许多开发者会编写jQuery插件来封装这些...
jquery插件库大全(200个): jqueryQQ表情插件 jquery下拉菜单导航 jquery下拉菜单栏 jquery仿Windows系统选中图标效果 jquery仿京东商品详情页图片放大效果 jquery仿百度新闻焦点轮播 jquery分离布局模版 jquery...
jQuery插件是jQuery库的一个扩展,它们通过添加新的功能来增强原生的jQuery对象。开发者通常会将一些常见的功能封装成插件,以便于复用和提高开发效率。这个弹出层插件就是基于jQuery的,它可以无缝集成到现有的...
"jquery插件弹出div"是一个基于jQuery的插件,用于创建弹出式对话框或者模态框,通常用于显示警告、确认消息或者进行表单提交等交互操作。在网页设计中,这种功能能够提升用户体验,因为它可以将用户注意力集中在...
这个jQuery插件正是为了解决这个问题而设计的,它提供了一种优雅的方式来显示加载提示,以遮挡效果的方式增强用户的感知。 **插件的核心功能** 1. **Ajax请求提示**:当jQuery的$.ajax()方法被调用时,插件会自动...
这个压缩包文件"网页模板——jQuery实现滚动到网站页面底部动画弹出对话框.zip"很可能是包含了一个示例或模板,用于教导开发者如何利用jQuery来创建这种动态效果。 首先,我们来详细解释一下这个功能的核心知识点:...
"20种弹出层"是一款基于jQuery和CSS3技术的弹出层插件,它集成了20种不同的弹出效果,每一种都具有独特的视觉表现和用户体验。这款插件旨在帮助开发者轻松实现各种类型的弹出层,无论是在简单的信息提示,还是复杂的...
**jQuery弹出层插件SexyLightBox详解** 在网页设计中,弹出层是一种常见的交互元素,用于在用户点击某个链接或按钮时显示一个浮动窗口,通常用来展示图片、视频或者详细信息。SexyLightBox是一款基于jQuery的弹出层...
总的来说,这个jQuery插件为网页右下角弹出窗口提供了一种简单而强大的解决方案,可以帮助开发者快速实现这一常见功能,提高网站的互动性和用户体验。通过深入理解其工作原理和配置选项,你将能够更好地定制和优化弹...
本资源“jQuery插件集之(弹出div4)+Demo”提供了一个实用的解决方案,即用div而非模态窗口实现弹出功能。这个插件设计巧妙,能够为用户提供一种灵活的方式来展示信息,而无需依赖于传统的模态框。 首先,让我们深入...
本篇文章将深入探讨一个基于jQuery的插件,标题为"jQuery插件集之(弹出div2)+Demo",该插件主要用于在页面上弹出一个div元素,而非传统的模态窗口,提供了一种轻量级且灵活的替代方案。 首先,让我们了解为什么...
在前端开发中,jQuery弹出层插件是用于创建弹窗效果的重要工具,它能够帮助开发者轻松实现模态对话框、提示信息、加载提示等交互功能。本篇将详细介绍jQuery弹出层插件,以及如何使用名为"Popup Div"的实例。 首先...
本主题聚焦于利用CSS3动画过渡效果和jQuery库创建动态弹出框插件。这种结合使得弹出框不仅功能强大,还能提供平滑、吸引人的视觉体验。 首先,让我们了解CSS3中的动画和过渡。CSS3的`transition`属性允许我们在更改...
标题中的“自己写的jquery 弹出层插件,可拖动”表明这是一个基于jQuery的自定义弹出框插件,具备拖动功能。在Web开发中,弹出层(也称为对话框或模态窗口)常用于显示警告、确认信息或者提供用户交互界面。这个插件...
虽然这不是一个弹出框插件,但粒子效果可能被用于创建背景动态效果,为弹出框添加视觉吸引力。这类效果通常需要服务器环境运行,因为它们可能涉及到JavaScript动画和实时渲染。 7. **jquery分页插件**: 这个插件...
jQuery LayerModel是一款基于jQuery的弹出层插件,它提供了丰富的功能,包括创建各种类型的弹出窗口,如提示、信息、确认、加载等,并且支持弹出层的拖动效果。在网页交互设计中,弹出层是常用的一种增强用户体验的...
本资源"jquery插件库-jquery弹出层 三种弹出效果.zip"聚焦于jQuery的一个特定应用:弹出层效果。下面我们将详细探讨jQuery弹出层的原理、实现方式以及三种不同的弹出效果。 1. jQuery弹出层基础 jQuery弹出层,通常...
总结来说,"支持弹出图片视频jQuery插件.zip" 提供了一个强大的工具,可以帮助开发者快速构建交互性强、视觉效果出色的图片和视频展示功能。通过熟练掌握和应用这个插件,可以在网页设计中提升用户体验,同时减轻...