2013-02-27 93 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