Baseline Widely available
resize
ì´ë²¤í¸ë document viewì í¬ê¸°ê° ë³ê²½ë ë ë°ìí©ëë¤.
window.onresize
ìì±(ì´í¸ë¦¬ë·°í¸)ì ì¬ì©íê±°ë,window.addEventListener('resize', ...)
를 ì¬ì©íì¬, ì´ë²¤í¸ í¸ë¤ë¬ì resize
ì´ë²¤í¸ë¥¼ ë±ë¡í ì ììµëë¤.
ì¼ë¶ ë¸ë¼ì°ì ì ì´ì ë²ì ììë 모ë HTML ìì(ì리먼í¸)ì resize
ì´ë²¤í¸ í¸ë¤ë¬ë¥¼ ë±ë¡ í ì ìììµëë¤. ì¬ì í onresize
ìì±ì ì¬ì©íê±°ë, addEventListener()
를 ì¬ì©íì¬ ëª¨ë ììì í¸ë¤ë¬ë¥¼ ì¤ì í ì ììµëë¤. ê·¸ë¬ë resize
ì´ë²¤í¸ë ì¤ì§ window
ê°ì²´(document.defaultView
)ììë§ ë°ìí©ëë¤(ì ë¬í©ëë¤). window
ê°ì²´ì ë±ë¡ë í¸ë¤ë¬ë§ ì´ë²¤í¸ë¥¼ ìì í©ëë¤.
모ë ììê° resize ë³ê²½ì ì림ë°ì ì ìëë¡ íë ìë¡ì´ ì ì(proposal 2017)ì´ ììµëë¤. ëëíí¸ë¬¸ì를 ì½ì¼ë ¤ë©´ Resize Observer를 참조íê³ , ì§íì¤ì¸ í ë¡ ì ì½ì¼ë ¤ë©´ Github issues 문ì를 참조íì¸ì.
General info Properties Property Type Descriptiontarget
ì½ê¸° ì ì© EventTarget
ì´ë²¤í¸ íê²(DOM í¸ë¦¬ì ìµìì íê²). type
ì½ê¸° ì ì© DOMString
ì´ë²¤í¸ì íì
. bubbles
ì½ê¸° ì ì© Boolean
ì´ë²¤í¸ê° ì ìì ì¼ë¡ ë²ë¸ì´ ë°ìíëì§ ì¬ë¶. cancelable
ì½ê¸° ì ì© Boolean
ì´ë²¤í¸ ì·¨ì ê°ë¥ ì¬ë¶. view
ì½ê¸° ì ì© WindowProxy
document.defaultView
(문ìì window
) detail
ì½ê¸° ì ì© long
(float
) 0. Examples
resize
ì´ë²¤í¸ë ë¹ë²íê² ë°ìë ì ì기 ë문ì, ì´ë²¤í¸ í¸ë¤ë¬ë DOM ìì ê³¼ ê°ì ê³ì°ì´ ë§ì´ íìí ì°ì°ì ì¤ííì§ ììì¼ í©ëë¤. ëì ì ë¤ìê³¼ ê°ì´ requestAnimationFrame, setTimeout, customEvent* ë±ì ì¬ì©í´ ì´ë²¤í¸ë¥¼ ì¤ë¡í(throttle) íëê²ì´ ì¢ìµëë¤:
* 주ì: IE11ì ì ëë¡ ìëíë ¤ë©´ customEvent í´ë¦¬í(polyfill)ì´ íìí©ëë¤.
requestAnimationFrame + customEvent(function () {
var throttle = function (type, name, obj) {
obj = obj || window;
var running = false;
var func = function () {
if (running) {
return;
}
running = true;
requestAnimationFrame(function () {
obj.dispatchEvent(new CustomEvent(name));
running = false;
});
};
obj.addEventListener(type, func);
};
/* init - you can init any event */
throttle("resize", "optimizedResize");
})();
// handle event
window.addEventListener("optimizedResize", function () {
console.log("Resource conscious resize callback!");
});
requestAnimationFrame
var optimizedResize = (function () {
var callbacks = [],
running = false;
// fired on resize event
function resize() {
if (!running) {
running = true;
if (window.requestAnimationFrame) {
window.requestAnimationFrame(runCallbacks);
} else {
setTimeout(runCallbacks, 66);
}
}
}
// run the actual callbacks
function runCallbacks() {
callbacks.forEach(function (callback) {
callback();
});
running = false;
}
// adds callback to loop
function addCallback(callback) {
if (callback) {
callbacks.push(callback);
}
}
return {
// public method to add additional callback
add: function (callback) {
if (!callbacks.length) {
window.addEventListener("resize", resize);
}
addCallback(callback);
},
};
})();
// start process
optimizedResize.add(function () {
console.log("Resource conscious resize callback!");
});
setTimeout
(function() {
window.addEventListener("resize", resizeThrottler, false);
var resizeTimeout;
function resizeThrottler() {
// ignore resize events as long as an actualResizeHandler execution is in the queue
if ( !resizeTimeout ) {
resizeTimeout = setTimeout(function() {
resizeTimeout = null;
actualResizeHandler();
// The actualResizeHandler will execute at a rate of 15fps
}, 66);
}
}
function actualResizeHandler() {
// handle the resize event
...
}
}());
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4