2013-10-25 222 views
0

我用我的一条jQuery线碰到了墙壁,显示并隐藏了潜水。我正在使用一个链接(阅读更多...)来显示div和div内的底部我有一个密切的联系。JQuery显示/隐藏div

显示功能完美地工作,但关闭div时的关闭功能不会缓慢动画并导致页面滚动条一路走到顶端。我认为这可能与我编写的错误有关,因为我对jQuery很陌生。任何帮助,将不胜感激。

我使用jQuery 1.6.4版本

jQuery代码:

$(document).ready(function(){ 

$(".toggle_container").hide(); 
$("#standard_or_custom").hide();  

$("a.trigger").toggle(function(){ 
    $(this).addClass("active"); 
    }, function() { 
    $(this).removeClass("active"); 
}); 

$("a.trigger").click(function(){ 
    $(this).next(".toggle_container").slideToggle("slow,"); 
}); 

$("a.close").click(function(){ 
    $(".toggle_container").hide("slow,"); 
}); 


}); 

HTML:

<a href="#" class="trigger">Read more...</a> 

<div class="toggle_container"> 
<p> 
CONTENT HERE 
</p> 

<a href="#" class="close">Close</a> 

</div> 

CSS我使用的是与此相关的DIV:

.toggle_container { 
margin:0; 
padding:10px 10px; 
border: 1px solid #d6d6d6; 
background: #f1f1f1; 
overflow: hidden; 
font-size:.95em; 
clear: both; 
} 
.toggle_container .block { 
padding: 20px; 
} 
.toggle_container .block p { 
padding: 5px 0; 
margin: 5px 0; 
} 

.bottom { 
margin-bottom:20px; 
} 

回答

6

有一个在的末尾slow

$(".toggle_container").hide("slow"); 

演示:Fiddle

+0

什么锐利的眼睛。 :) –

+0

谢谢,没有抓住...我删除了逗号,但我仍然得到相同的最终结果。 – NewB

+1

它回到顶端,因为你没有防止默认行为。 –

0

没关系,我计算出来;刚刚添加了:

 $("a.close").toggle(function(){ 
    $(this).addClass("active"); 
    }, function() { 
    $(this).removeClass("active"); 
}); 

回到顶部我的关闭功能,并照顾它。

完整代码:

$(document).ready(function(){ 

$(".toggle_container").hide(); 
$("#standard_or_custom").hide();  

$("a.trigger").toggle(function(){ 
    $(this).addClass("active"); 
    }, function() { 
    $(this).removeClass("active"); 
}); 

$("a.trigger").click(function(){ 
    $(this).next(".toggle_container").slideToggle("slow,"); 
}); 

    $("a.close").toggle(function(){ 
    $(this).addClass("active"); 
    }, function() { 
    $(this).removeClass("active"); 
}); 

$("a.close").click(function(){ 
    $(".toggle_container").hide("slow"); 
}); 


});