Jquery 如果窗口大于不工作,则简单
我正在努力解决这个简单的if结构的响应性设计。基本上,它是一个导航元素,从下拉列表切换到浮动列表。在960px范围内调整大小时,下拉菜单不起作用。我当前的代码有问题吗Jquery 如果窗口大于不工作,则简单,jquery,resize,Jquery,Resize,我正在努力解决这个简单的if结构的响应性设计。基本上,它是一个导航元素,从下拉列表切换到浮动列表。在960px范围内调整大小时,下拉菜单不起作用。我当前的代码有问题吗 $(window).load(function(){ var windowWidth = $(window).width(); function checkSize() { if(windowWidth < 960) { quickDrop(); } } function quickDrop(
$(window).load(function(){
var windowWidth = $(window).width();
function checkSize() {
if(windowWidth < 960) {
quickDrop();
}
}
function quickDrop(){
$("#quicklinks").hover(function() {
$("#quicklinks > ul").stop(true,true).slideDown("fast");
$sitesArrow.css({ WebkitTransform: 'rotate(270deg)'});
$sitesArrow.css({ '-moz-transform': 'rotate(270deg)'});
}, function(){
$("#quicklinks > ul").stop(true,true).slideUp("fast");
$sitesArrow.css({ WebkitTransform: 'rotate(0deg)'});
$sitesArrow.css({ '-moz-transform': 'rotate(0deg)'});
});
}
checkSize();
$(window).resize(function(){
checkSize();
});
});
$(窗口).load(函数(){
var windowWidth=$(window.width();
函数checkSize(){
如果(窗宽<960){
quickDrop();
}
}
函数quickDrop(){
$(“#快速链接”).hover(函数(){
$(“#quicklinks>ul”).stop(true,true)。slideDown(“fast”);
$sitesArrow.css({webkitttransform:'rotate(270度)});
$sitesArrow.css({'-moz transform':'rotate(270deg)});
},函数(){
$(“#quicklinks>ul”).stop(true,true).slideUp(“fast”);
$sitesArrow.css({webkitttransform:'rotate(0deg)});
$sitesArrow.css({'-moz transform':'rotate(0deg)});
});
}
checkSize();
$(窗口)。调整大小(函数(){
checkSize();
});
});
谢谢大家!
您需要将
var windowWidth=$(window.width()代码>在checkSize()函数中
function checkSize() {
var windowWidth = $(window).width();
if(windowWidth < 960) {
quickDrop();
}
}
函数checkSize(){
var windowWidth=$(window.width();
如果(窗宽<960){
quickDrop();
}
}
否则windowWidth
只能在window.load上获取一个值,而不是每次你请求函数checkSize()
你能把它放在小提琴上吗?将if(windowWidth<960)
更改为if($(window.width()<960)
-您正在运行时设置windowWidth
变量,因此它不会在每次调用checkSize()
时都得到更新。这是正确的答案-我只是将此作为问题的注释发布。是的,这确实是朝着好的方向迈出的一步。现在的问题是,当我在/小于960/中“激活”下拉列表并将其重新调整到960px以上时,我的#quicklinks ul就不存在了。只有当较小的菜单(如果窗口宽度<500)悬停时才会发生这种情况。因为您将ul
隐藏在#quicklinks
中(通过slideUp('fast')
)。你的大菜单也在一个ul
中,所以它也被隐藏了。出于好奇,你为什么要用jQuery来做这件事?通过在CSS中使用媒体查询,您可以更轻松地实现响应性设计,并且浏览器不会在每次有人调整窗口大小时都出现延迟。@MathijsDelva您找到解决方案了吗?