如果我有这个
window.onresize = function() {
alert('resized!!');
};
Run Code Online (Sandbox Code Playgroud)
我的函数在整个调整大小期间被多次触发,但我想捕获调整大小的完成.这是在IE中.
有任何想法吗?那里有各种各样的想法,但到目前为止对我没有用(例如IE的假设window.onresizeend事件.)
你如何降低javascript事件轮询的频率?我关注的事件是onResize和onScroll.当有人调整浏览器大小或向下滚动时,这些事件可能会每秒触发几十次.我希望这些事件每500毫秒才会发生一次,所以我不必花费数小时优化我的事件处理程序并确保它们不会泄漏内存.
javascript onresize event-handling javascript-events onscroll
我有一个D2006应用程序,其中包含选项卡上的页面控件和各种网格等.当我调整主窗体的大小时(它会在与某些东西对齐的表格上涟漪并调整大小),我会遇到很长的延迟,比如几秒钟.应用程序冻结,未调用空闲处理程序,并且运行的线程也会暂停.
我尝试在IDE中暂停执行,而这种情况发生在试图破坏执行时,它处于麻烦的代码中,但IDE没有接收消息.
显然,我不希望任何人指出一些错误的代码,但我正在调试可能对我有帮助的方法.我在整个应用程序中都有大量的执行时序代码,并且长时间延迟不会显示在任何数据中.例如,主窗体OnResize处理程序的执行时间是最小的.
我想在iOS6中使用Safari的全新全屏功能.现在我知道不可能从javascript触发全屏功能,这没关系,但我想知道用户何时进入全屏模式.(要显示带有文本的弹出窗口"此网站最好以全屏模式查看",直到用户全屏显示.)
我已经尝试设置窗口,文档和'包装'div(宽度和高度在css中设置为100%)onresize事件(通过普通的javascript和通过jQuery'resize'事件),但它们不会被触发我进入全屏模式.
我还设置了一个间隔来检查屏幕/文档/包装器的宽度和高度的变化,但它们没有显示任何变化.
还有其他方法可以确定用户进入(或离开)全屏模式吗?
根据 w3 学校<textarea>支持onresize,但它不起作用。
http://www.w3schools.com/jsref/event_onresize.asp
浏览器尝试过:
铬25.0.1364.172
Safari 6.0.3 (7536.28.10)
火狐19.0
小提琴:http://jsfiddle.net/btevfik/5abR3/
更新
当我吸取教训不要 100% 相信 w3schools 时,我发现了这个
https://developer.mozilla.org/en-US/docs/DOM/element.onresize
我正在使用 google adsense 响应式广告(使用 Bootstrap),它在页面加载时正常工作。同样在手持设备中,它可以正确检测方向并立即调整广告。
但是,当我调整浏览器的大小时,它不会对此做出反应。当没有内置系统来检测屏幕调整大小时,声称响应能力很奇怪。我想添加一个事件侦听器,但这是一个很好的解决方法还是会中断?我还考虑过加载不同尺寸的广告并设置一些断点,但我想避免这种情况,只使用“响应式”广告。
在此先感谢您的任何建议。
我在XP英文机器和XP日本机器上运行相同的UI代码.出于某种原因 - 这两台机器之间的行为是不同的:
在日语机器上,OnResize事件在InitializeComponent调用期间被触发(我认为是来自ResumeLayout函数).在英语机器上它没有.
我有一个OnResize的覆盖方法,它改变我定义的私有变量的值.由于组件未完全加载(Ctor仍在运行),这些变量为空,我得到一个异常.
我可以通过检查变量是否为null来修复代码,但我想了解为什么它首先被调用以及为什么它只在这台机器上发生.
在我通过网络搜索期间,我发现了其他人发布的相同问题,但没有解决方案(http://social.msdn.microsoft.com/Forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2- 6e2142dfb631).
如果我创建一个新的Delphi表单,挂钩其OnResize事件,并运行该应用程序,OnResize将在窗口显示之前触发.对于任何一个窗口,我不知道这是否会永远发生.
(对于熟悉Windows API的人来说,我已经将它追溯到TCustomForm.ShowingChanged中的ShowWindow调用(Delphi 2007中的Forms.pas第5503行),这显然会触发一个WM_SIZE......至少是一个没有其他窗口的新窗口属性设置.我没有看到它记录ShowWindow总是触发WM_SIZE,所以我不知道我是否可以指望这个.)
所以:我可以依靠TForm 在首次显示时始终触发OnResize吗?或者是否有情况(可能是窗口不可调整大小,可能是如果Position属性具有某些值,等等)OnResize 在首次显示窗口之前可能无法触发?
我用jq计算页面加载的元素宽度并且工作正常,尝试在窗口调整大小时自动化但有点不起作用.期望的效果:框应该在窗口调整大小时自动调整大小而不是下拉.
任何帮助表示赞赏.谢谢!
我在调整TPaintBox的大小并绘制它时遇到问题:
在我的表单(名为FMain)上,我删除了一个TPaintBox(名为DisplayImage),我试图在调整Form大小时调整大小.
为此,我为FMain写了一个OnResize()方法(我确认它被正确调用),我尝试调整DisplayImage的大小:
procedure TFMain.FormResize(Sender: TObject);
begin
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height);
end;
Run Code Online (Sandbox Code Playgroud)
恕我直言,最后一个代码应该在整个图像上绘制一个全图像绿色矩形,使其有效地始终为绿色.相反,我得到一个灰色图像(就像Delphi的标准bg颜色),每隔一段时间调整一次,绿色图像闪烁.
我缺少什么,是否有一些我需要在调整大小后更新的隐藏组件?
先感谢您,
暴风雪
我有一个单页应用程序,利用ui-router,列表页面使用listController和详细页面使用detailController.
详细信息页面window.onresize附加了事件,而列表页面没有.
问题是每当我从详细页面移动到列表页面时,onresize事件仍然监听并且关于resize目标元素的抛出错误不存在.
我在更改页面时如何删除window.onresize事件侦听器?
(function() {
angular
.module('app')
.controller('listController', function() {
// do things for list page
})
.controller('detailController', function() {
window.onresize = function() {
// do some resize function
}
})
})();
Run Code Online (Sandbox Code Playgroud) 我想从我的C#代码后面触发onresize事件.我认为这可以做到
Page.clientScript.RegisterScriptBlock(this.getType(), "id", "javascript code");
Run Code Online (Sandbox Code Playgroud)
我已经尝试过element.onresize()但它似乎不适用于Firefox.触发类似于以下jQuery的onresize事件的正确方法是什么?
$("body").trigger("resize");
Run Code Online (Sandbox Code Playgroud)
使用jQuery本身不是一种选择.