gpt4 book ai didi

jquery - IE jQuery 显示/隐藏 div 跳转问题

转载 作者:行者123 更新时间:2023-11-28 13:45:23 25 4
gpt4 key购买 nike

我正在构建一个网站,并且有一个内容区域,其中包含用于显示公司服务的框。在我的导航栏中,我有一个名为“联系”的按钮。单击 Contacted 后,内容区域将隐藏,并显示联系人 div。这适用于 Chrome 和 FF,但 IE 却一团糟。下面是一些代码。

联系区域的 HTML 代码:

<div class="contact"> 
<h2>Contact Us</h2>
<p>For emergencies or to arrange a quote, call <span style="font-weight:bold; color:red;">999</span>. Or use the form below and we'll get back to you shortly.</p>
<form class="tab">
<label for="move">Your Name:</label>
<input type="text" name="move" class="move" /><br />
<label for="locate">Your Email:</label>
<input type="text" name="locate" class="locate" /><br /> >
<label for="contact">&nbsp;</label>
<a href='#contact' class='contact-submit'>Send!</a><a href="#" class="prepend-1 contact-close">Cancel</a><br />
</form>
</div>

内容区域的 HTML 代码:

<div class="content"> 
<div class="span-24 last">
<p></p>
</div>
<div class="span-6 append-1">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra malesuada orci et lacinia. Ut ac augue diam. Fusce vitae felis velit, vitae vulputate libero. Pellentesque in nibh est, tincidunt ullamcorper dolor. Etiam condimentum semper sem a mollis. Cras faucibus, neque vitae egestas imperdiet, tellus lorem rutrum massa, eget ultrices libero purus quis mi. Aliquam erat volutpat. Donec non metus id sapien pulvinar consequat. Praesent ut lectus massa, id viverra orci. In hac habitasse platea dictumst.</p>
</div> <!-- END span-6 DIV -->
<div class="span-15 append-2 last prepend-bottom box2" style="overflow:hidden;">
<p>Cras viverra placerat luctus. Cras eu elit sit amet lectus pretium egestas id a est. Mauris pretium lacus non eros dapibus at tempus leo condimentum. Quisque a elit non massa mattis pretium vitae eu est. Curabitur vulputate iaculis tellus tincidunt bibendum. Aliquam erat volutpat. Aenean nec viverra augue. Duis ultrices velit sed sapien suscipit eget dictum dolor feugiat. Aliquam erat volutpat. Nulla cursus dolor ut turpis congue sollicitudin. In hac habitasse platea dictumst. Duis facilisis malesuada magna, sed porttitor tortor posuere sed.</p>
</div> <!-- END span-6 DIV -->

<div class="prepend-3 boxes prepend-top">

<div class="clearfix row">

<div class="module compact clearfix">
<h4><a href="electrical/">Electrical</a></h4>
<div class="compact-content">

<img src="assets/images/electrical-image1.jpg" alt="" >

<p>We also offer electrical installations and maintenance for both commercial and domestic.</p>

</div> <!-- END compact-content DIV -->
</div> <!-- END module DIV -->
<div class="module compact clearfix">
<h4><a href="plumbing/">Plumbing</a></h4>
<div class="compact-content">

<img src="assets/images/plumbing-image1.jpg" alt="Property Maintenance and Refurbishment" >

<p>We offer plumbing for the commercial industry, no matter if it's big or a small job.<br /></p>

</div> <!-- END compact-content DIV -->
</div> <!-- END module DIV -->

<div class="module compact clearfix">
<h4><a href="security/">Security</a></h4>
<div class="compact-content">

<img src="assets/images/security-image1.jpg" alt="Security" >

<p>Security is key, that's why we are experts in the security field.</p>

</div> <!-- END compact-content DIV -->
</div> <!-- END module DIV -->
</div><!-- END clearfix row -->
</div><!-- END prepend-3 DIV -->
</div><!-- END content DIV -->

jQuery 代码:

$('a.contact-close').click(function(){//If cancel has been clicked, show original content.

$('div.contact').hide('slow', function(){


$('div.content').show('slow', function(){
$('div.boxes').show('slow').delay(700);
});//END div.content show-slow

});
});

//Below is the contact script
$('div.contact').hide();//Hide div

$('div.nav a.contact').click(function(){//If Contact has been clicked show Contact div
$('div.boxes').hide('slow', function(){
$('div.content').hide('slow', function(){
$('div.contact').show('slow');

});
});//END Boxes hide
});

这个的 CSS 在 jsFiddle 上: http://jsfiddle.net/hart1994/Nh9tP/

在 Internet Explorer 中,它会在隐藏过程中跳转框。然后,当重新显示时,它会将它们排成两排而不是三排。有关完整演示,请参见下面的网站链接。

您可能需要重建它,因为它可能不会在 jsFiddle 中显示。

或者你可以看看: http://molossi.psm2.co.uk/

我已经尝试将 jQuery 更改为 slideDown/Up 和 fadeOut/In。

提前致谢!

最佳答案

jQuery hide() show() 方法“同时对匹配元素的宽度、高度和不透明度进行动画处理”,以便在高度和宽度发生变化时,浏览器正在重新排列文档。浏览器确实以非常不同的方式重新流动,而在 IE 中,这会使框跳转。您可能想要使用自定义 jQuery animate() - 也许只是高度?正是减小的宽度导致 float 元素重新流动。

选择“取消”链接后布局损坏是由于 jQuery 离开 style<div class="boxes"> 上动画之后。这导致 boxes div 无法正确清除左侧的段落,因此宽度较小,因此无法在一行中容纳 3 个子元素。您可以通过挂接到最终 show() 方法的回调来删除 jQuery 留下的这些额外样式,如下所示:

$('div.boxes').show('slow', function() {
$(this).attr('style', '');
}).delay(700);

还请注意,IE 将在 quirks mode 中运行可能无济于事。 .您的页面没有文档类型,根据我的经验,这可能会导致不必要的和意外的呈现问题(尤其是在 IE 中)。除了缺少文档类型之外,还有一些其他小问题导致您转至 not validate。 .

希望这有用:-)

关于jquery - IE jQuery 显示/隐藏 div 跳转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5536659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com