我正在尝试创建一个包含一堆块的页面(通常包含“溢出:隐藏”文本,可以通过单击框展开)。但是,当我单击框以调整其高度(以显示所有文本)时,我还想通过使用 ScrollTop 使该框成为焦点。如果您单击该框以扩展其高度,如果它在浏览器窗口中仍然看不见,这看起来很奇怪。
我有一个 jQuery 函数,它可以动画高度变化并很好地动画 ScrollTop 重新定位,但它对我来说通常看起来很不稳定。这是不一致的。有时它很平滑,有时它会调整框的高度,然后非常突然地滚动,这会产生非常令人不快的生涩效果。添加到奇怪的行为是,在函数完成后的几秒钟内,我无法使用鼠标手动滚动窗口。就好像它阻止了手动鼠标滚动一样。
我创建了一个小 jsfiddle(没有我通常放在右侧框中的文本)。
$(document).ready(function() {
$(".right").click(function() {
var currentHeight = $(this).height();
$(this).animate({
height: (currentHeight == 100 ? 200 : 100)
}, 400, function() {
var offset = $(this).offset();
$('html, body').animate({
scrollTop: offset.top
}, 1000);
});
});
});