1
我正在使用jQuery来添加一些页面转换时的某些元素(通过jQuery Transit插件),当它被徘徊时。由于我试图设计响应,我希望这些转换只发生在浏览器达到一定规模或更大时。为什么我的jQuery没有响应窗口大小调整?
我写了下面的代码作为一种尝试做到这一点:
$(document).ready(function(){
var $window = $(window);
var $logo = $('.logo');
function checkWidth() {
windowsize = $window.width();
}
checkWidth();
$(window).resize(checkWidth);
if (windowsize >= 768) {
$logo.hoverIntent(
function(){
$logo.transition({
perspective: '600px',
rotateY: '-10deg'
});
},
function(){
$logo.transition({
perspective: '600px',
rotateY: '0deg'
});
}
);
}
});
如果我加载页面在一个大的浏览器,它按预期工作 - 悬停效果是积极的。如果我调整浏览器的大小,使其更小(超过断点)并刷新,则它可以工作 - 悬停效果将被禁用。但是如果我调整窗口的大小而不刷新其间,则效果不响应 - 它要么保持禁用状态(如果从小屏幕调整到大屏幕),要么保持活动状态(如果从大到小调整大小)。
这是一个小小的怪癖,当然,但我不能确切地弄清楚为什么会发生。据我所知,当窗口调整大小时,应该正在更新windowsize
变量,应在语句中检查。我忽略了什么使得情况并非如此?
谢谢你一堆。
感谢您的快速响应! 我尝试使用您提供的代码。现在,如果我在小浏览器中加载页面,则不存在悬停效果,如果我在不刷新的情况下使浏览器变大,则会出现悬停效果。这很好!但是,从大到小不会禁用悬停效果。我错过了明显的东西吗? – SpencerDub
这将是因为(**惊喜!**),当窗口大小<768时,代码不会禁用悬停效果。您必须添加代码才能执行此操作。 –
啊,呃。数字我会忽略这样简单的事情。谢谢! – SpencerDub