का उपयोग करके अपनी प्राकृतिक ऊंचाई पर एक तत्व को कैसे एनिमेट कर सकता हूं। मैं अपनी "प्राकृतिक" ऊंचाई को एनिमेट करने के लिए तत्व प्राप्त करने की कोशिश कर रहा हूं - यानी ऊंचाई अगर यह height: auto;
थी।मैं jQuery
मैं इस के साथ आ गया है:
var currentHeight = $this.height();
$this.css('height', 'auto');
var height = $this.height();
$this.css('height', currentHeight + 'px');
$this.animate({'height': height});
वहाँ यह करने के लिए एक बेहतर तरीका है? यह एक हैक की तरह लगता है।
संपादित करें: यहां परीक्षण करने के लिए इच्छित किसी भी व्यक्ति के साथ खेलने के लिए एक पूर्ण स्क्रिप्ट है।
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>jQuery</title>
<style type="text/css">
p { overflow: hidden; background-color: red; border: 1px solid black; }
.closed { height: 1px; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$().ready(function()
{
$('div').click(function()
{
$('p').each(function()
{
var $this = $(this);
if ($this.hasClass('closed'))
{
var currentHeight = $this.height();
$this.css('height', 'auto');
var height = $this.height();
$this.css('height', currentHeight + 'px');
$this.animate({'height': height});
}
else
{
$this.animate({'height': 1});
}
$this.toggleClass('closed');
});
});
});
</script>
</head>
<body>
<div>Click Me</div>
<p>Hello - I started open</p>
<p class="closed">Hello - I started closed</p>
</body>
</html>
इस वैरिएबल ग्रेग – redsquare