首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Internet中的window.resize事件触发

Internet中的window.resize事件触发
EN

Stack Overflow用户
提问于 2009-12-05 17:06:21
回答 15查看 63.5K关注 0票数 76

如您所知,在Internet中,当页面上的任何元素都被调整大小时,就会触发 window.resize事件。通过给页面元素分配/更改其高度或样式属性来调整页面元素的大小,通过简单地向其添加一个子元素,或者其他什么--即使元素调整大小不影响视口本身的尺寸--并不重要。

在我的应用程序中,这导致了一个令人讨厌的递归,因为在我的window.resize处理程序中,我正在调整一些元素的大小,这反过来又会重新触发window.resize等等,这只是IE中的一个问题。

有什么方法可以防止在IE中触发window.resize以响应页面上的元素被调整大小?

我还应该提到,我正在使用jQuery。

EN

Stack Overflow用户

发布于 2013-12-02 12:19:37

你可以试试这个:

构造器:

代码语言:javascript
运行
复制
this.clientWidth = null;
this.clientHeight = null;

的一些功能:

代码语言:javascript
运行
复制
var clientWidth = window.innerWidth || document.documentElement.clientWidth; 
var clientHeight = window.innerHeight || document.documentElement.clientHeight;
if (clientWidth != this.clientWidth || clientHeight != this.clientHeight ) {
    this.clientWidth = clientWidth;
    this.clientHeight = clientHeight;

    ... YOUR CODE ...
} 

对于Internet Explorer、Chrome、Firefox、Opera和Safari:

代码语言:javascript
运行
复制
window.innerHeight - the inner height of the browser window
window.innerWidth - the inner width of the browser window

对于8、7、6、5:

代码语言:javascript
运行
复制
document.documentElement.clientHeight
document.documentElement.clientWidth
    or
document.body.clientHeight
document.body.clientWidth
票数 1
EN
查看全部 15 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1852751

复制
相关文章

相似问题

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