我有以下代码:
$("#content-listing").slideUp(800, function(){
$("#loading").hide();
});
哪个工作正常。但有没有一种“撤消”slideUp或删除其功能的方法?
我正在使用matchMedia
根据用户的屏幕尺寸应用某些功能。如果调整浏览器窗口大小,slideUp
会干扰新转换的布局,所以我试图找到一种方法将其删除?
答案 0 :(得分:0)
我认为你正在寻找$(“#...”)。stop();
答案 1 :(得分:0)
我将围绕slideUp代码添加一个条件语句。
像
这样的东西var isMobile = //whatever you're using to decide what your toggle threshold is
if(isMobile)
{
$("#content-listing").show();
//Or whatever you want to do in the case of a small screen
} else {
$("#content-listing").slideUp(800, function(){
$("#loading").hide();
});
}
答案 2 :(得分:0)
if ($(window).width() <= 400 ) {
$("#content-listing").slideUp(800, function(){
$("#loading").hide();
}
您还可以尝试resize
事件:
$(window).resize(function() {
var w = $(this).width();
if (w <= '400') {
$("#content-listing").slideUp(800, function(){
$("#loading").hide();
});
}
})
更新
尝试dequeue()
方法:
$("#content-listing").queue('slide', function(){
$(this).slideUp(800, function(){
$("#loading").hide();
});
})
if (w <= '400') {
$("#content-listing").dequeue('slide')
}
答案 3 :(得分:0)
我最终做的是将一个类应用于body
标记onclick
,以便我可以专门引用移动div来投射jQuery voodoo:
$("body").addClass("mobile");
到哪:
$("body.mobile #content-listing").slideUp(function(){
$("#loading").hide();
});
然后,window.resize
发生后,我会从mobile
中移除body
类:
$("body").removeClass("mobile");