If there was ever a time to hate IE, this is it. This code begins with a box with content. When the button is clicked, the box is supposed to drop down and fade-in.
<html>
<script type="text/javascript" src="jquery.js">&l开发者_运维知识库t;/script>
<script type='text/javascript'>
function Test()
{
var item_height = $('#test').height();
$('#test').height(0);
$('#test').css('opacity','0');
$('#test').animate({ height: item_height, opacity: '1' },400);
}
</script>
<body>
<!-- The div below holds the sample content -->
<div id="test" style='border: 1px solid black;'>
Content<br>
Content<br>
Content<br>
Content<br>
Content
</div>
<!-- The button to test the animation -->
<br><br>
<div style='position: absolute; top: 150px; left: 10px;'>
<button onclick='Test();'>Test</button>
</div>
</body>
</html>
This very simple example works on Chrome, Safari, and Opera. But Internet Explorer? No.
How can I (if it's even possible) fix this so that it works in IE?
Because you are missing the <head>
tag and doctype declaration, your page is being rendered in Quirks Mode. Change this
<html>
to this
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
I assume what you mean is that in IE, the item's height won't change. The element's height doesn't seem to get set to 0 properly. It works in my IE8 when I change
$('#test').height(0);
to
$('#test').height(1);
I don't know why this is. The documentation on height() does not mention any IE specific quirks.
精彩评论