我遇到了将打开的手风琴项目滚动到手风琴所在容器顶部的问题。或者,滚动到视图。 例如: 我有一个DIV,里面有手风琴。 DIV高度固定为260px,并且手风琴项目比容器可以容纳的多,所以自然有滚动。 如果用户想要展开div中可见的最后一项,则会打开,但会将展开的内容从视野中删除,然后用户必须向下滚动才能看到它。 如何使扩展的内容进入视图? 限制: 不能依赖DOM作为参考,因为整个DOM滚动受到影响而不是DIV滚动。 这就是我在代码方面的含义: 关于元素:
onclick='setInScrollViewIfNeeded(this);'
脚本: 被注释掉的部分是我尝试过但没有用的部分。 在调试器中,我已经浏览了脚本的每一行,它按预期工作,直到需要将所需元素滚动到视图/顶部。
function setInScrollViewIfNeeded(elem) {
var isExpanded = $(elem).attr("aria-expanded");
var expandingElem = $(elem).attr("href");
expandingElem = expandingElem.substring(1)
if (isExpanded == "true") {
}
else {
var el = document.getElementById(expandingElem);
//el.scrollIntoView(true);
//$(el).animate({ scrollTop: 0 }, "fast");
// $(el).scrollTop(0);
}
}
更新 - 小提琴: http://jsfiddle.net/ag050ozs/