我試圖在按下按鈕時將div的高度設置爲其全高,並且如果再次單擊該按鈕,則會回到原始高度。由於它包含具有不同字數的文本,因此div的完整高度是自動的。我試着做下面的代碼,但它不能正常工作。將DIV設置爲全高並將其切換回指定高度
的CSS:
.category_brief{
text-align:justify;
height:100px;
overflow:hidden;
}
例1:打開到完全高度時,此代碼不動畫股利,但在回來的老動畫的高度。
$(".slide").toggle(function(){
$('.category_brief').animate({height:'100%'},200);
},function(){
$('.category_brief').animate({height:100},200);
});
實施例2:這個代碼的輸出是相同的實施例1
實施例3的var toggle = true, oldHeight = 0;
$('.slide').click(function(event) {
event.preventDefault();
var $ele = $('.category_brief');
var toHeight = ((toggle = !toggle) ? oldHeight : newHeight);
oldHeight = $ele.height();
var newHeight = $ele.height('auto').height();
$ele.animate({ height: toHeight });
});
:此代碼動畫在div其滿高度,但不進行切換。
var slide = $('.slide');
var slidepanel = $('.category_brief');
// On click, animate it to its full natural height
slide.click(function(event) {
event.preventDefault();
var oldHeight, newHeight;
// Measure before and after
oldHeight = slidepanel.height();
newHeight = slidepanel.height('auto').height();
// Put back the short height (you could grab this first
slidepanel.height(oldHeight);
slidepanel.animate({height: newHeight + "px"});
});
如果可能,請提供一點解釋也因爲我是一個新手..
更新:從@chazm的想法解決了..
@chazm:感謝您的想法。我通過結合第一個和第三個例子來解決問題......以下是任何需要它的代碼。
var slidepanel = $('.category_brief');
$(".slide").toggle(function(){
var oldHeight, newHeight;
// Measure before and after
oldHeight = slidepanel.height();
newHeight = slidepanel.height('auto').height();
// Put back the short height (you could grab this first
slidepanel.height(oldHeight);
slidepanel.animate({height: newHeight + "px"})
},function(){
$('.category_brief').animate({height:100},300);
});
@Wesley Murch:現在刪除.... –