我有三個div,我有功能,當我點擊按鈕時顯示它們的全部內容。 但我認爲這個函數太複雜了,我想要沒有那麼多if語句的東西。如何製作div的全高度?
如果我有10個div,這個函數會太長,如何縮短它?
$(document).ready(function() {
var h1 = $(".pt1").height(), h2 = $(".pt2").height(), h3 = $(".pt3").height();
$(".post-text").height("72px");
var read = $(".post-read");
read.click(function() {
if ($(this).html() === 'Read more') {
$(this).html("Show less");
if ($(this).prev().attr('class') == "post-text pt1") {
$(this).prev().animate({
height : h1
}, 'slow');
} else if ($(this).prev().attr('class') == "post-text pt2") {
$(this).prev().animate({
height : h2
}, 'slow');
} else {
$(this).prev().animate({
height : h3
}, 'slow');
}
} else {
$(this).html("Read more");
$(this).prev().animate({
height : 72
}, 'slow');
}
});
});
HTML:
<div id="tabs-1">
<div class="post">
<div class="post-img">
<img alt="" src="img/post-pic.png">
</div>
<div class="post-text pt1">Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames Pellentesque habitant
morbi tristique senectus et netus et malesuada fames Pellentesque habitant morbi tristique senectus et
netus et male- suada fames Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames Pellentesque habitant
morbi tristique senectus et netus et malesuada fames Pellentesque habitant morbi tristique senectus et
netus et male- suada fames</div>
<div class="post-read">Read more</div>
<div class="clear"></div>
</div>
<div class="post">
<div class="post-img">
<img alt="" src="img/post-pic.png">
</div>
<div class="post-text pt2">Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames Pellentesque habitant
morbi tristique senectus et netus et malesuada fames Pellentesque habitant morbi tristique senectus et
netus et male- suada fames Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames Pellentesque habitant
morbi tristique senectus et netus et malesuada fames Pellentesque habitant morbi tristique senectus et
netus et male- suada fames Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames</div>
<div class="post-read">Read more</div>
<div class="clear"></div>
</div>
<div class="post">
<div class="post-img">
<img alt="" src="img/post-pic.png">
</div>
<div class="post-text pt3">Pellentesque habitant morbi tristique senectus et netus et malesuada fames
Pellentesque habitant morbi tristique senectus et netus et male- suada fames Pellentesque habitant
morbi tristiquemorbi tristique senectus et netus.</div>
<div class="post-read">Read more</div>
<div class="clear"></div>
</div>
</div>
CSS:
.post {clear: both;width: 595px;padding-bottom: 30px;}
.post-img {width: 122px;background-color: #f8f6f1;box-shadow: 0px 0px 5px 1px #a09e99;float: left; }
.post-text {float: left;width: 457px; overflow:hidden;padding-left: 16px;}
.post-read {float: right;background: url(img/arrow.png) no-repeat right center transparent;padding-right: 22px;margin-right: 12px;}
的jsfiddle:link
添加jfiddle.net鏈接了。 – hjpotter92 2013-02-14 12:17:16
您可以使用data屬性來保存div的高度,然後在動畫功能中使用它。 $( 「#DIV1」)的數據)。( 「數據」,$( 「#DIV1」)的高度。); $(this).prev()。animate({height:$(this).prev()。data('height') },'slow'); – 2013-02-14 12:25:54