【发布时间】:2013-10-17 15:20:56
【问题描述】:
我有一系列可展开的内容 DIV,它们最初是折叠的,并在单击另一个带有标题文本的 DIV 时展开。请参阅下面的代码示例。
<div id="post">
<div class="heading" onclick="opendiv()">...Heading...</div>
<div class="body">.....Lengthy content.....</div>
</div>
....
....
'body' 类最初隐藏了具有“冗长内容”的“body”DIV。 单击“标题”DIV 时,“正文”DIV 会展开,使网页可滚动。 请记住,在此集合的上方和下方有 5 个或更多此类可扩展 DIV 集。 单击“正文”部分时,页面必须滚动回其“标题”DIV 位置。
这是我用来在 DIV 上方展开和折叠的 js 脚本。但是这种滚动回给定的 DIV 不起作用。
function opendiv() {
$('html,body').animate({scrollTop: $("div#post div.heading").offset().top});
if ($("div#post div.body").css("display") == "block") {
$("div#post div.body").hide();
} else {
$("div#post div.body").show();
}
}
【问题讨论】:
-
由于id是uniq,所以不用在选择器前面放标签名..
$("#post div.heading") -
使用此代码滚动到 div 可以正常工作(当然,在单击
.header之后,不是您所说的.body,这是因为执行错误。请看下面的答案)。 -
如果您使用的是 jQM,请使用
$.mobile.silentScrol()。
标签: javascript jquery html jquery-mobile