首页 前端知识 jquery的blockUI遮罩层的使用,面试完资料要拿回来吗

jquery的blockUI遮罩层的使用,面试完资料要拿回来吗

2024-05-10 22:05:29 前端知识 前端哥 858 351 我要收藏

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

$.blockUI({

message: $m,

fadeIn : typeof opts.fadeIn !== ‘undefined’ ? opts.fadeIn : 700,

fadeOut: typeof opts.fadeOut !== ‘undefined’ ? opts.fadeOut : 1000,

timeout: typeof opts.timeout !== ‘undefined’ ? opts.timeout : timeout,

centerY: false,

showOverlay: false,

onUnblock: onClose,

css: $.blockUI.defaults.growlCSS

});

};

callBlock();

var nonmousedOpacity = $m.css(‘opacity’);

$m.mouseover(function() {

callBlock({

fadeIn: 0,

timeout: 30000

});

var displayBlock = $(‘.blockMsg’);

displayBlock.stop(); // cancel fadeout if it has started

displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency

}).mouseout(function() {

$(‘.blockMsg’).fadeOut(1000);

});

// End konapun additions

};

// plugin method for blocking element content

$.fn.block = function(opts) {

if ( this[0] === window ) {

$.blockUI( opts );

return this;

}

var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});

this.each(function() {

var $el = $(this);

if (fullOpts.ignoreIfBlocked && $el.data(‘blockUI.isBlocked’))

return;

$el.unblock({ fadeOut: 0 });

});

return this.each(function() {

if ($.css(this,‘position’) == ‘static’) {

this.style.position = ‘relative’;

$(this).data(‘blockUI.static’, true);

}

this.style.zoom = 1; // force ‘hasLayout’ in ie

install(this, opts);

});

};

// plugin method for unblocking element content

$.fn.unblock = function(opts) {

if ( this[0] === window ) {

$.unblockUI( opts );

return this;

}

return this.each(function() {

remove(this, opts);

});

};

$.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!

// override these in your code to change the default behavior and style

$.blockUI.defaults = {

// message displayed when blocking (use null for no message)

message: ‘

Please wait…

’,

title: null, // title string; only used when theme == true

draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)

theme: false, // set to true to use with jQuery UI themes

// styles for the message when blocking; if you wish to disable

// these and use an external stylesheet then do this in your code:

// $.blockUI.defaults.css = {};

css: {

padding: 0,

margin: 0,

width: ‘30%’,

top: ‘40%’,

left: ‘35%’,

textAlign: ‘center’,

color: ‘#000’,

border: ‘3px solid #aaa’,

backgroundColor:‘#fff’,

cursor: ‘wait’

},

// minimal style set used when themes are used

themedCSS: {

width: ‘30%’,

top: ‘40%’,

left: ‘35%’

},

// styles for the overlay

overlayCSS: {

backgroundColor: ‘#000’,

opacity: 0.6,

cursor: ‘wait’

},

// style to replace wait cursor before unblocking to correct issue

// of lingering wait cursor

cursorReset: ‘default’,

// styles applied when using $.growlUI

growlCSS: {

width: ‘350px’,

top: ‘10px’,

left: ‘’,

right: ‘10px’,

border: ‘none’,

padding: ‘5px’,

opacity: 0.6,

cursor: ‘default’,

color: ‘#fff’,

backgroundColor: ‘#000’,

‘-webkit-border-radius’:‘10px’,

‘-moz-border-radius’: ‘10px’,

‘border-radius’: ‘10px’

},

// IE issues: ‘about:blank’ fails on HTTPS and javascript:false is s-l-o-w

// (hat tip to Jorge H. N. de Vasconcelos)

/*jshint scripturl:true */

iframeSrc: /^https/i.test(window.location.href || ‘’) ? ‘javascript:false’ : ‘about:blank’,

// force usage of iframe in non-IE browsers (handy for blocking applets)

forceIframe: false,

// z-index for the blocking overlay

baseZ: 1000,

// set these to true to have the message automatically centered

centerX: true, // <-- only effects element blocking (page block controlled via css above)

centerY: true,

// allow body element to be stetched in ie6; this makes blocking look better

// on “short” pages. disable if you wish to prevent changes to the body height

allowBodyStretch: true,

// enable if you want key and mouse events to be disabled for content that is blocked

bindEvents: true,

// be default blockUI will supress tab navigation from leaving blocking content

// (if bindEvents is true)

constrainTabKey: true,

// fadeIn time in millis; set to 0 to disable fadeIn on block

fadeIn: 200,

// fadeOut time in millis; set to 0 to disable fadeOut on unblock

fadeOut: 400,

// time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock

timeout: 0,

// disable if you don’t want to show the overlay

showOverlay: true,

// if true, focus will be placed in the first available input field when

// page blocking

focusInput: true,

// elements that can receive focus

focusableElements: ‘:input:enabled:visible’,

// suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)

// no longer needed in 2012

// applyPlatformOpacityRules: true,

// callback method invoked when fadeIn has completed and blocking message is visible

onBlock: null,

// callback method invoked when unblocking has completed; the callback is

// passed the element that has been unblocked (which is the window object for page

// blocks) and the options that were passed to the unblock call:

// onUnblock(element, options)

onUnblock: null,

// callback method invoked when the overlay area is clicked.

// setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.

onOverlayClick: null,

// don’t ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493

quirksmodeOffsetHack: 4,

// class name of the message block

blockMsgClass: ‘blockMsg’,

// if it is already blocked, then ignore it (don’t unblock and reblock)

ignoreIfBlocked: false

};

// private data and functions follow…

var pageBlock = null;

var pageBlockEls = [];

function install(el, opts) {

var css, themedCSS;

var full = (el == window);

var msg = (opts && opts.message !== undefined ? opts.message : undefined);

opts = $.extend({}, $.blockUI.defaults, opts || {});

if (opts.ignoreIfBlocked && $(el).data(‘blockUI.isBlocked’))

return;

opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});

css = $.extend({}, $.blockUI.defaults.css, opts.css || {});

if (opts.onOverlayClick)

opts.overlayCSS.cursor = ‘pointer’;

themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});

msg = msg === undefined ? opts.message : msg;

// remove the current block (if there is one)

if (full && pageBlock)

remove(window, {fadeOut:0});

// if an existing element is being used as the blocking content then we capture

// its current place in the DOM (and current display style) so we can restore

// it when we unblock

if (msg && typeof msg != ‘string’ && (msg.parentNode || msg.jquery)) {

var node = msg.jquery ? msg[0] : msg;

var data = {};

$(el).data(‘blockUI.history’, data);

data.el = node;

data.parent = node.parentNode;

data.display = node.style.display;

data.position = node.style.position;

if (data.parent)

data.parent.removeChild(node);

}

$(el).data(‘blockUI.onUnblock’, opts.onUnblock);

var z = opts.baseZ;

// blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;

// layer1 is the iframe layer which is used to supress bleed through of underlying content

// layer2 is the overlay layer which has opacity and a wait cursor (by default)

// layer3 is the message content that is displayed while blocking

var lyr1, lyr2, lyr3, s;

if (msie || opts.forceIframe)

lyr1 = $(‘’);

else

lyr1 = $(‘

’);

if (opts.theme)

lyr2 = $(‘

’);

else

lyr2 = $(‘

’);

if (opts.theme && full) {

s = ‘

’;

if ( opts.title ) {

s += ‘

’+(opts.title || ’ ‘)+’ ';

}

s += ‘

’;

s += ‘’;

}

else if (opts.theme) {

s = ‘

’;

if ( opts.title ) {

s += ‘

’+(opts.title || ’ ‘)+’ ';

}

s += ‘

’;

s += ‘’;

}

else if (full) {

s = ‘

’;

}

else {

s = ‘

’;

}

lyr3 = $(s);

// if we have a message, style it

if (msg) {

if (opts.theme) {

lyr3.css(themedCSS);

lyr3.addClass(‘ui-widget-content’);

}

else

lyr3.css(css);

}

// style the overlay

if (!opts.theme /&& (!opts.applyPlatformOpacityRules)/)

lyr2.css(opts.overlayCSS);

lyr2.css(‘position’, full ? ‘fixed’ : ‘absolute’);

// make iframe layer transparent in IE

if (msie || opts.forceIframe)

lyr1.css(‘opacity’,0.0);

//$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? ‘body’ : el);

var layers = [lyr1,lyr2,lyr3], $par = full ? $(‘body’) : $(el);

$.each(layers, function() {

this.appendTo($par);

});

if (opts.theme && opts.draggable && $.fn.draggable) {

lyr3.draggable({

handle: ‘.ui-dialog-titlebar’,

cancel: ‘li’

});

}

// ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)

var expr = setExpr && (!$.support.boxModel || $(‘object,embed’, full ? null : el).length > 0);

if (ie6 || expr) {

// give body 100% height

if (full && opts.allowBodyStretch && $.support.boxModel)

$(‘html,body’).css(‘height’,‘100%’);

// fix ie6 issue when blocked element has a border width

if ((ie6 || !$.support.boxModel) && !full) {

var t = sz(el,‘borderTopWidth’), l = sz(el,‘borderLeftWidth’);

var fixT = t ? ‘(0 - ‘+t+’)’ : 0;

var fixL = l ? ‘(0 - ‘+l+’)’ : 0;

}

// simulate fixed position

$.each(layers, function(i,o) {

var s = o[0].style;

s.position = ‘absolute’;

if (i < 2) {

if (full)

s.setExpression(‘height’,‘Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:’+opts.quirksmodeOffsetHack+‘) + “px”’);

else

s.setExpression(‘height’,‘this.parentNode.offsetHeight + “px”’);

if (full)

s.setExpression(‘width’,‘jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + “px”’);

else

s.setExpression(‘width’,‘this.parentNode.offsetWidth + “px”’);

if (fixL) s.setExpression(‘left’, fixL);

if (fixT) s.setExpression(‘top’, fixT);

}

else if (opts.centerY) {

if (full) s.setExpression(‘top’,‘(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + “px”’);

s.marginTop = 0;

}

else if (!opts.centerY && full) {

var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;

var expression = ‘((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ‘+top+’) + “px”’;

s.setExpression(‘top’,expression);

}

});

}

// show the message

if (msg) {

if (opts.theme)

lyr3.find(‘.ui-widget-content’).append(msg);

else

lyr3.append(msg);

if (msg.jquery || msg.nodeType)

$(msg).show();

}

if ((msie || opts.forceIframe) && opts.showOverlay)

lyr1.show(); // opacity is zero

if (opts.fadeIn) {

var cb = opts.onBlock ? opts.onBlock : noOp;

var cb1 = (opts.showOverlay && !msg) ? cb : noOp;

var cb2 = msg ? cb : noOp;

if (opts.showOverlay)

lyr2._fadeIn(opts.fadeIn, cb1);

if (msg)

lyr3._fadeIn(opts.fadeIn, cb2);

}

else {

if (opts.showOverlay)

lyr2.show();

if (msg)

lyr3.show();

if (opts.onBlock)

opts.onBlock.bind(lyr3)();

}

// bind key and mouse events

bind(1, el, opts);

if (full) {

pageBlock = lyr3[0];

pageBlockEls = $(opts.focusableElements,pageBlock);

if (opts.focusInput)

setTimeout(focus, 20);

}

else

center(lyr3[0], opts.centerX, opts.centerY);

if (opts.timeout) {

// auto-unblock

var to = setTimeout(function() {

if (full)

总结

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2.show();

if (msg)

lyr3.show();

if (opts.onBlock)

opts.onBlock.bind(lyr3)();

}

// bind key and mouse events

bind(1, el, opts);

if (full) {

pageBlock = lyr3[0];

pageBlockEls = $(opts.focusableElements,pageBlock);

if (opts.focusInput)

setTimeout(focus, 20);

}

else

center(lyr3[0], opts.centerX, opts.centerY);

if (opts.timeout) {

// auto-unblock

var to = setTimeout(function() {

if (full)

总结

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

[外链图片转存中…(img-uQXT3B1r-1713145355959)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-jFK8mumI-1713145355959)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7995.html
标签
评论
发布的文章

HTML5(H5)中的Web Workers

2024-05-19 09:05:52

HTML5

2024-02-27 11:02:15

HTML5 <option> 标签

2024-05-19 09:05:51

@JsonProperty 注解详解

2024-05-19 09:05:27

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!