我注意到,我的iphone5上有safari
$(window).resize()
奇怪的是......
我有这段代码:
$(document).ready(function () {
$(window).resize(function() {
avviaChart();
initialize();
if($('#time').is(':checked')){
$("#time").removeAttr('checked');
$("#Time").css('border','2px solid #ffffff');
}
});
});
此代码仅在窗口大小改变时才有效.... 与其他浏览器工作非常好,但如果我滚动页面(并且窗口的大小没有改变),使用safari代码也可以工作...
可能性如何? O.o
答案 0 :(得分:17)
这是iOS6 Safari中发生的已知错误。滚动时,resize事件会随机触发。幸运的是it's not a jQuery issue.
This answer类似的问题也可以解决您的问题。
懒惰:
3Stripe发布了"存储窗口宽度并检查它是否已实际更改,然后继续使用$(窗口).resize函数"
他的代码片段:
jQuery(document).ready(function($) {
/* Store the window width */
var windowWidth = $(window).width();
/* Resize Event */
$(window).resize(function(){
// Check if the window width has actually changed and it's not just iOS triggering a resize event on scroll
if ($(window).width() != windowWidth) {
// Update the window width for next time
windowWidth = $(window).width();
// Do stuff here
}
// Otherwise do nothing
});
});
答案 1 :(得分:6)
如您所见,在iphone / ipad和Android设备中,当您向下滚动页面时,地址栏会很小,当滚动到顶部地址栏大小将返回实际大小时,此操作将触发window.resize事件
答案 2 :(得分:0)
特定于ios的这个问题,如果任何改变窗口中任何内容大小的处理程序,将触发resize事件,有时它会卡在<div class="uk-home-button">
<div>
<div class="uk-panel-box"></div>
</div>
<div>
<div class="uk-panel-box"></div>
</div>
<div>
<div class="uk-panel-box"></div>
</div>
<div>
<div class="uk-panel-box"></div>
</div>
</div>
中。因此,如上所述,如果两者相等则返回时,有一个条件将infinite resize call
与previous width
进行比较。