2013-02-27 96 views
2

我有一个可调整大小的左侧导航。默认宽度是200,我希望调整器捕捉到该宽度。目前我有这个if-clause,它工作正常,但我不知道如何以编程方式捕捉到该宽度。jQuery UI可调整大小snap to size

resize: function (event, ui) { 
    if(Math.abs(200 - ui.size.width) <= 20){ 
     // snap to 200 width 
    } 
} 

将是巨大的,如果有人可以帮助我在这里:)

回答

4

好吧,它工作。只需将元素的宽度设置为200.它的公差为15px,因此如果元素在185和215px之间,它将捕捉到200px。

$("#left").resizable({ 
minWidth: 60, 
handles: "e", 
resize: function (event, ui) { 
    if(Math.abs(200 - ui.size.width) <= 15){ 
     $("#left").css("width", 200); 
    } 
} 
+1

我的回答给你更多的可能性... – 2013-02-27 20:36:31

+0

@CyrilALFARO:不,你把调整大小锁定到20-200。 – oskarth 2013-10-02 11:50:56

+0

真的...但它8个月前waas,我没有得到问题... – 2013-10-03 15:24:40

0

由于有:http://jqueryui.com/resizable/#max-min您可以使用此:

$(function() { 
    $("#left").resizable({ 
     maxWidth: 200, 
     minWidth: 20 
    }); 
}); 
+0

这将使它不能调整大小。 – dozed 2013-02-27 20:37:07

+0

但它是更好的方式来调整它,不要忘记把#left;) – 2013-02-27 20:37:58

+0

使用该代码,我甚至无法调整导航的大小。它应该调整大小,只是捕捉宽度200 – dozed 2013-02-27 20:39:28

0

如何像$(ui).width(200);? 请注意,我不知道代码中的ui是什么,因此您可能需要修改jQuery选择器。

+0

是的,把它与我的代码下面。谢谢反正:) – dozed 2013-02-27 20:37:37

+0

没问题,但ithink它可能值得看看第三个答案。 – benzonico 2013-02-27 20:40:01

0

我会检查一个范围内的宽度,以便'snap'从任一侧发生。

resize: function (event, ui) { 
    if(ui.size.width >= 180 && ui.size.width <= 220){ 
     // snap to 200 width 
    } 
} 
+0

这就是我的答案已经.. :) – dozed 2014-03-06 07:21:05