1 つの div があるとします。
<div id="left">Some content</div>
id が "left" の Div はサイズ変更可能な div (ブラウザでマウスを使用してサイズを変更できます) であり、サイズを変更すると、次のように現在の幅の CSS スタイルを受け取ります。
<div id="left" style="width: 289px;">Some content</div>
私が達成したいのは、#left div のライブ イベント (またはそのようなもの) で幅の値を読み取り、その値に基づいていくつかの条件を追加することです (ライブ イベントである必要があり、クリックやマウスのリリース クリックなどで読み取らないようにする必要があります)。 .) ... 事前にご協力いただきありがとうございます。
解決:
カスタム バインド関数を使用してこれを実現できます。
(function(){
var interval;
jQuery.event.special.liveresize = {
setup: function(){
var self = this,
$this = $(this),
$originalContent = $this.width();
interval = setInterval(function(){
if($originalContent != $this.width()) {
$originalContent = $this.width();
jQuery.event.handle.call(self, {type:'liveresize'});
}
},100);
},
teardown: function(){
clearInterval(interval);
}
};
})();
そして、それを呼び出すだけです:
$(function() {
$('#left').bind('liveresize', function() {
var actual_width = $(this).width();
if(actual_width < 930)
{
$('#left').addClass('ng-av-small-left');
$('#left').addClass('ng-av-small-right');
} else
{
$('#left div.block div.left').removeClass().addClass('left');
$('#left div.block div.right').removeClass().addClass('right');
}
});
});