我创建了一个小型KineticJS动画,你可以在这个地址看到:
http://sandbox-ben.kimbiaservices.com/kineticjs/index.html
我想找到一种方法让这个动画始终设置为窗口宽度的100%。 (它将是另一个元素的“背景”区域。)
我可以通过将jQuery中的宽度设置为$(window).width()来做初始设置(可能有其他方法可以做到这一点,但jQuery已经被使用了),但我无法弄清楚如何在调整大小或方向更改时重绘/重置舞台。
那么,有没有办法完成以下任何任务:
答案 0 :(得分:8)
我想我找到了解决方案。尝试检测.on('resize')
的问题在于,调整窗口大小的行为会导致事件触发数万次,从而拖延浏览器。
受到这个答案的启发:Detect when a window is resized using JavaScript ? - 我能够创建一个jQuery事件,可以检测(或多或少)调整大小的时间。完成后,我清空容器元素并重新启动初始绘制脚本。下面的代码可以解决问题:
$(window).on('resize',function(){
if(this.resizeTO) clearTimeout(this.resizeTO);
this.resizeTO = setTimeout(function(){
$(this).trigger('resizeEnd');
},500);
});
$(window).on('resizeEnd orientationchange',function(){
$('#container').empty();
RunHeaderAnim();
});