我正在创建自己的类似 JSFiddle 的 web 应用程序,我想实现元素大小调整,但保持文档高度不变,因此我必须在每次调整大小时重新计算元素尺寸。 我有这个脚本:
var a = setInterval(setHeight, 1);
var b = setInterval(formsWidth, 1);
iframe.onResizeStart = a;
html.onResizeStart = b;
iframe.onResizeStop = clearInterval(a);
html.onResizeStop = clearInterval(b);
Iframe 是呈现用户代码的元素,HTML 是我的三个文本区域之一。我希望此脚本在 iframe 调整大小时重新计算文本区域高度,并在更改其中之一的宽度时重新计算其宽度。
我设法完成了这项工作,但我无法停止间隔,我需要帮助。 上面的代码现在根本不起作用,可能是因为调用了变量 onResizeStart。
如果有人能帮助我,我将不胜感激。 我不想使用 jQuery。
最佳答案
它不起作用,因为您几乎在调用 setInterval() 之后立即调用clearInterval(),因此间隔永远没有机会执行。您需要存储 a 和 b,然后在调整大小完成后对它们调用clearInterval()。
编辑:更仔细地观察这一点,只需将对clearInterval()的每个调用包装在一个函数中。这样,clearInterval 不会立即执行,而是在 onResizeStop 事件触发时执行。
iframe.onResizeStop = function() { clearInterval(a); };
关于javascript - 如何清除这些间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562662/