在客户端JavaScript中,除了窗口之外的任何元素都可以获得调整大小事件

In client side JavaScript, can any element besides window get a resize event?

本文关键字:都可以 元素 任何 小事件 大小事 调整 JavaScript 客户端 窗口      更新时间:2023-09-26

我得到多个页面,说调整大小事件可以在bodydiv元素上:

http://www.w3schools.com/jsref/event_onresize.asp

http://v3.javascriptmvc.com/docs/jQuery.event.special.resize.html#&who=jQuery.event.special.resize

但后来我在jsfiddle或独立页面中尝试了它,但始终无法在元素上获得调整大小事件:

http://jsfiddle.net/sgHck/1/

http://jsfiddle.net/sgHck/8/

bodydiv是否可以获得调整大小事件?如果不是,那么如果我们需要在页面中缩小一个部分,并且页面的一部分依赖于scroll事件来正确放置另一个元素,并且还需要文档的resize事件,而不是窗口,该怎么办?

仔细研究后,发现它们的大小调整事件可能不太符合您的要求。

您可以添加类似的调整大小事件

$('#content').resize( function(){
    //stuff to do
}

$('#content').on('resize', function(){
    //stuff to do
}

这是您已经在做的,但当通过javascript代码或类似的东西调整元素的大小时,这些不会触发。以这种方式触发它的唯一方法是使用

$('#content').trigger('resize');

你真的可以用任何字符串来做。这确实通过dom树向上传播。假设你在一个正文中有#内容,两个正文上都有"调整大小"事件。如果您触发#内容,它也将触发正文。但是,如果使用body触发事件,则不会触发#内容。

然而,使用jquery-ui-resizable方法似乎可以获得所需的功能类型http://jqueryui.com/resizable/.在你用制作了可调整大小的东西之后

$('#content').resizable({options});

如果它们被更改,它应该触发resize事件。

相关文章: