jQuery之關(guān)于resize()方法的使用
jQuery resize() 方法使用
$(window).resize(function(){
$('span').text(x+=1);
})定義和用法
當(dāng)調(diào)整瀏覽器窗口大小時(shí),發(fā)生resize 事件。
resize() 方法觸發(fā) resize 事件,或規(guī)定當(dāng)發(fā)生 focus 事件時(shí)運(yùn)行的函數(shù);
jQuery的resize方法擴(kuò)展,支持window對(duì)象以外的dom元素
現(xiàn)在有一個(gè)需求,當(dāng)窗口或者容器高度發(fā)生變化時(shí),更新滾動(dòng)條,滾動(dòng)條插件使用的是 jQuery.NiceScroll,需要同時(shí)監(jiān)聽(tīng) window 對(duì)象 和 div 容器的 resize 事件。
事實(shí)上,jQuery 官方是有 $(window).resize() 事件的,只不過(guò)只能監(jiān)聽(tīng) window 對(duì)象,下面是方法代碼,請(qǐng)?jiān)谝?jQuery 之后使用!
代碼示例
// 監(jiān)聽(tīng)div大小變化
(function($, h, c) {
?? ?var a = $([]),
?? ?e = $.resize = $.extend($.resize, {}),
?? ?i,
?? ?k = "setTimeout",
?? ?j = "resize",
?? ?d = j + "-special-event",
?? ?b = "delay",
?? ?f = "throttleWindow";
?? ?e[b] = 250;
?? ?e[f] = true;
?? ?$.event.special[j] = {
?? ??? ?setup: function() {
?? ??? ??? ?if (!e[f] && this[k]) {
?? ??? ??? ??? ?return false;
?? ??? ??? ?}
?? ??? ??? ?var l = $(this);
?? ??? ??? ?a = a.add(l);
?? ??? ??? ?$.data(this, d, {
?? ??? ??? ??? ?w: l.width(),
?? ??? ??? ??? ?h: l.height()
?? ??? ??? ?});
?? ??? ??? ?if (a.length === 1) {
?? ??? ??? ??? ?g();
?? ??? ??? ?}
?? ??? ?},
?? ??? ?teardown: function() {
?? ??? ??? ?if (!e[f] && this[k]) {
?? ??? ??? ??? ?return false;
?? ??? ??? ?}
?? ??? ??? ?var l = $(this);
?? ??? ??? ?a = a.not(l);
?? ??? ??? ?l.removeData(d);
?? ??? ??? ?if (!a.length) {
?? ??? ??? ??? ?clearTimeout(i);
?? ??? ??? ?}
?? ??? ?},
?? ??? ?add: function(l) {
?? ??? ??? ?if (!e[f] && this[k]) {
?? ??? ??? ??? ?return false;
?? ??? ??? ?}
?? ??? ??? ?var n;
?? ??? ??? ?function m(s, o, p) {
?? ??? ??? ??? ?var q = $(this),
?? ??? ??? ??? ?r = $.data(this, d);
?? ??? ??? ??? ?r.w = o !== c ? o: q.width();
?? ??? ??? ??? ?r.h = p !== c ? p: q.height();
?? ??? ??? ??? ?n.apply(this, arguments);
?? ??? ??? ?}
?? ??? ??? ?if ($.isFunction(l)) {
?? ??? ??? ??? ?n = l;
?? ??? ??? ??? ?return m;
?? ??? ??? ?} else {
?? ??? ??? ??? ?n = l.handler;
?? ??? ??? ??? ?l.handler = m;
?? ??? ??? ?}
?? ??? ?}
?? ?};
?? ?function g() {
?? ??? ?i = h[k](function() {
?? ??? ??? ?a.each(function() {
?? ??? ??? ??? ?var n = $(this),
?? ??? ??? ??? ?m = n.width(),
?? ??? ??? ??? ?l = n.height(),
?? ??? ??? ??? ?o = $.data(this, d);
?? ??? ??? ??? ?if (m !== o.w || l !== o.h) {
?? ??? ??? ??? ??? ?n.trigger(j, [o.w = m, o.h = l]);
?? ??? ??? ??? ?}
?? ??? ??? ?});
?? ??? ??? ?g();
?? ??? ?},
?? ??? ?e[b]);
?? ?}
})(jQuery, this);使用方法:
$('#scrollBox').niceScroll();
$('#scrollBox').resize(function() {
?? ?// 容器尺寸發(fā)生變化后執(zhí)行的事件
?? ?$('#scrollBox').getNiceScroll().resize();
})總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery設(shè)置聚焦并使光標(biāo)位置在文字最后的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇jQuery設(shè)置聚焦并使光標(biāo)位置在文字最后的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
jQuery基于擴(kuò)展實(shí)現(xiàn)的倒計(jì)時(shí)效果
這篇文章主要介紹了jQuery基于擴(kuò)展實(shí)現(xiàn)的倒計(jì)時(shí)效果,涉及jQuery擴(kuò)展的使用與時(shí)間操作的相關(guān)技巧,需要的朋友可以參考下2016-05-05
jQuery動(dòng)態(tài)添加 input type=file的實(shí)現(xiàn)代碼
有時(shí)候需要在頁(yè)面上允許用戶上傳多個(gè)文件,個(gè)數(shù)由用戶自己決定,個(gè)數(shù)多了也可以刪除,使用jQuery可以很簡(jiǎn)單的實(shí)現(xiàn)這個(gè)功能2012-06-06
JQuery Ajax WebService傳遞參數(shù)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇JQuery Ajax WebService傳遞參數(shù)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
jQuery EasyUI tree增加搜索功能的實(shí)現(xiàn)方法
擴(kuò)展jQuery EasyUI tree搜索樹(shù)節(jié)點(diǎn)的方法,使其支持節(jié)點(diǎn)名稱的模糊匹配,將不匹配的節(jié)點(diǎn)隱藏。下面通過(guò)本文給大家分享jQuery EasyUI tree增加搜索功能,需要的朋友可以參考下2017-04-04
jQuery配合coin-slider插件制作幻燈片效果的流程解析
coin-slider是GitHub上的一個(gè)人氣JavaScript開(kāi)源插件,用它來(lái)實(shí)現(xiàn)幻燈片效果只需要?jiǎng)邮謱?xiě)很少的代碼,下面我們就來(lái)看一下jQuery配合coin-slider插件制作幻燈片效果的流程解析.2016-05-05
jQuery 實(shí)現(xiàn)側(cè)邊浮動(dòng)導(dǎo)航菜單效果
這篇文章主要介紹了jQuery 實(shí)現(xiàn)側(cè)邊浮動(dòng)導(dǎo)航菜單效果,需要的朋友可以參考下2014-12-12

