jQuery(javascript?)でリサイズする場合、下記のように処理するのが普通に考えられるが
これだけでは正常な動作を行わない。
これだけでは正常な動作を行わない。
$(window).on(‘resize’,resizeHandler);
$(function(){■正常に動作する処理(例)
var resizeTimeout;
$(window).on(‘resize’,resizeHandler);
function resizeHandler(){$(window).on(‘resize’,resizeHandler);
resize();
clearTimeout(resizeTimeout);
resizeTimeout=setTimeout(resize,10);
}
function resize(){
}
});
function resize(){
}
});
なぜ、このような処理をしなければいけないかというと
ブラウザの最大化・縮小化したとき、$(window).on(‘reisze’,function(){});が発火した瞬間
width,heightは、最大化・縮小化する前の数値となっており、(原因は不明)
前者の処理では、最大化・縮小化の瞬間くずれてしまうからである。
なので、
$(window).on(‘reisze’,function(){});の発火の後、もう一度0.01秒後にresizeの処理を行っている。
リサイズ途中にsetTimeoutが何度も処理されて重くならないように、
リサイズが一旦とまるまでclearTimeoutでsetTimeoutを削除している
■上記が原因で悩みそうな事
・リサイズしたとき崩れる
・resizeが動作しない
RELATED
-
2023年12月13日
-
2023年8月24日
-
2023年8月1日
-
2021年8月25日
コメントを残す