2016-04-16 11 views
0

私はこれに対していくつかの解決策を知っていますが、私が望むものはありません。jQueryはコンテナの高さにアニメーションします

私はアニメーションの高さは、テキストがフェードインコンテナの高さになりたい

これは私がこれまで試したものです:。 フィドル:https://jsfiddle.net/jzhang172/rxbnnvdf/1/

$(function(){ 
 
$('.box').click(function(){ 
 
var heightbox = $(this).innerHeight(); 
 
var heightparagraph=$(this).find('p').innerHeight(); 
 
var trueheight=heightbox+heightparagraph; 
 
console.log(heightbox); 
 
console.log(heightparagraph); 
 
console.log(trueheight); 
 
$(this).animate({height: trueheight}, {duration:500}); 
 
$(this).find('p').fadeIn(1000); 
 
}); 
 

 
});
.box{ 
 
    width:100%; 
 
    height:50px; 
 
    border-bottom:1px solid black; 
 
    cursor:pointer; 
 
    overflow:hidden; 
 
} 
 
.box h2{ 
 
    margin:0px; 
 
    padding-top:25px; 
 
} 
 
body,html{ 
 
    padding:0; 
 
    margin:0; 
 
    
 
} 
 
.box p{ 
 
    display:none; 
 
} 
 
*{ 
 
    box-sizing:border-box; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="box one"> 
 
    <h2> 
 
    Box One 
 
    </h2> 
 
    <p class="info"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae tortor id massa tempus ultricies in a diam. Aliquam consectetur dui arcu, non volutpat mauris tempor eget. Donec et nibh ornare, pretium lorem nec, sagittis dui. Donec efficitur pulvinar mauris eget fringilla. Donec vulputate lectus suscipit mauris egestas mollis. Donec at risus dolor. Sed tincidunt, enim nec pharetra condimentum, massa eros condimentum nisi, ac ullamcorper erat lacus et urna. Proin urna sapien, convallis vel tellus vitae, vulputate congue mi. 
 
    </p> 
 
</div> 
 
<div class="box two"> 
 
    <h2> 
 
    Box Two 
 
    </h2> 
 
    <p class="info"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae tortor id massa tempus ultricies in a diam. Aliquam consectetur dui arcu, non volutpat mauris tempor eget. Donec et nibh ornare, pretium lorem nec, sagittis dui. 
 
    </p> 
 
</div>

+0

、真の高さ – va2ron1

+0

に25ピクセルを追加したり、outerHeightにはinnerHeightを変更する非常に多くの(真の) – va2ron1

答えて

1

余白がありませんでした。あなたはパディングトップを持って

var heightbox = $(this).find('h2').outerHeight(); // because otherwise the box will keep on increasing in height with every click. 
var heightparagraph=$(this).find('p').outerHeight(true); // true argument includes the margin of the element to the height. 

Fiddle

+0

ああ、TY:あなたはこれを必要とします! – Snorlax

関連する問題