編輯:我把這個代碼片段中jsbin:http://jsbin.com/eneru如何讓只用jQuery垂直調整DIV的大小 - 無插件?
我試圖讓用戶調整大小(僅垂直)與jQuery DIV元素。我閱讀了jQuery UI,我嘗試了它,並在幾分鐘內讓它工作。但是這個庫增加了一個我想避免的〜25KB開銷,因爲我只想要簡單的垂直調整大小。
所以我試圖自己做。這是HTML,我使用內嵌樣式爲清楚:
<div id="frame" style="border: 1px solid green; height: 350px">
<div style="height: 100%">Lorem ipsum blah blah</div>
<span id="frame-grip" style="display: block; width: 100%; height: 16px; background: gray"></span>
</div>
正如你可以看到,有一個DIV元素下一點吧,所以用戶可以拖動它向上或向下調整DIV。這是Javascript代碼(使用jQuery):
$(document).ready(function(){
var resizing = false;
var frame = $("#frame");
var origHeightFrame = frame.height();
var origPosYGrip = $("#frame-grip").offset().top;
var gripHeight = $("#frame-grip").height();
$("#frame-grip").mouseup(function(e) {
resizing = false;
});
$("#frame-grip").mousedown(function(e) {
resizing = true;
});
$("#frame-grip").mousemove(function(e) {
if(resizing) {
frame.height(e.pageY - origPosYGrip + origHeightFrame - gripHeight/2);
}
});
});
它的工作原理,或多或少,但如果你拖動滑塊速度太快,它停止跟隨鼠標移動和一切休息。
這是我第一次嘗試用JS和jQuery做嚴重(ahem),所以我可能會做些愚蠢的事情。如果是這樣,請告訴我:)
如果你已經有它的工作,那麼不要擔心。擔心人們開始抱怨,或者每分鐘有5000名用戶訪問該網站,並開始花費您的錢。不要早期優化! – Soviut 2009-06-30 01:11:24
謝謝。事實上,該網站每天約有100,000次的綜合瀏覽量,並且它提供了幾乎100KB的未壓縮Javascript。我把jQuery UI,當縮小和gzipped時,它比以前更小:) – 2009-06-30 10:43:04