首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有JavaScript事件可以使用CSS3调整大小属性来检测div的大小何时发生更改?

是否有JavaScript事件可以使用CSS3调整大小属性来检测div的大小何时发生更改?
EN

Stack Overflow用户
提问于 2014-01-06 13:32:50
回答 3查看 768关注 0票数 3

我使用CSS3的resize属性来创建一个垂直滚动的div:

代码语言:javascript
复制
.mydiv {
  resize: vertical
  overflow: auto;
}

Chrome在div的右下角放置了一组小的对角阴影,我现在可以用它来调整大小。

有没有办法在JavaScript中检测调整大小?我尝试在div的属性上使用DOM4 Mutation Observer,但是它没有触发任何东西。我可以在div上使用鼠标事件,但它很麻烦(mousedown不会触发,所以我必须监听所有的mousemove,并检测它是否在那个角落附近)。

EN

回答 3

Stack Overflow用户

发布于 2014-01-06 13:47:19

似乎不可能使用Chrome textarea手柄将事件附加到调整大小。请阅读:

我尝试使用DOMSubtreeModified,但它没有修改DOM,所以不起作用。

--UPDATE--如果你想使用jQuery UI,这是可能的。看看这个:

代码语言:javascript
复制
$("textarea").resizable({
    resize: function() {
        $("body").append("<pre>resized! Height:"+$(this).height()+" /// Width:"+$(this).width()+"</pre>");
    }
});

--UPDATE--这家伙已经想通了!

票数 1
EN

Stack Overflow用户

发布于 2014-01-06 13:56:29

你能试试这个吗,

HTML:

代码语言:javascript
复制
<textarea onresize="Resizing()"></textarea>

Javascript:

代码语言:javascript
复制
function Resizing(){
   console.log("Resizing..");
}
票数 0
EN

Stack Overflow用户

发布于 2019-05-09 16:59:36

现在只有window对象可以有一个resize事件处理程序。但是您可以在元素上使用getBoundingClientRect()。

https://developer.mozilla.org/en-US/docs/Web/Events/resize

在一些较早的浏览器中,可以在任何

元素上注册resize事件处理程序。仍然可以设置onresize属性或使用addEventListener()在任何元素上设置处理程序。但是,调整大小事件仅在窗口对象上触发(即由document.defaultView返回)。只有在窗口对象上注册的处理程序才会接收调整大小事件。

有一项建议是允许所有元素在调整大小更改时都得到通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20943612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档