我用jquery来切换一些div的显示和隐藏。
但是当其中一个div扩展到屏幕之外时,出现问题。我想要做的是滚动页面,使该div位于屏幕顶部。
这是我正在使用的代码:
我还创建了一个FIDDLE来展示问题,链接:http://jsfiddle.net/bMJ79/5/。点击第2个部分会使其超出屏幕底部。
理想情况下,我希望页面自动滚动,使第2个部分在屏幕顶部。
我在
上述代码存在问题,但以下代码可以正常运行:
但是它缺乏良好的过渡效果。有没有办法让两者同时工作?谢谢。
但是当其中一个div扩展到屏幕之外时,出现问题。我想要做的是滚动页面,使该div位于屏幕顶部。
这是我正在使用的代码:
$('.slider').hide(800);
$('a#show').on('click', function (e) {
e.preventDefault();
var elem = $(this).next('.slider')
$('.slider').not(elem).hide();
elem.toggle();
});
我还创建了一个FIDDLE来展示问题,链接:http://jsfiddle.net/bMJ79/5/。点击第2个部分会使其超出屏幕底部。
理想情况下,我希望页面自动滚动,使第2个部分在屏幕顶部。
我在
elem.toggle();
之后添加了以下代码,它有点起作用。$('html, body').animate({
scrollTop: elem.offset().top
}, 1000);
更新了 FIDDLE
我遇到的问题是滚动条通常只能将页面滚动部分地进入 div,而不是完全滚动到顶部。
请问有人可以告诉我如何使其仅滚动到当前 div 的顶部而不是部分进入其中?
** 更新 ** 更新了 FIDDLE,显示了部分滚动问题。
单击“第一部分”,它将打开,然后滚动到第二部分并单击它。
它会在 div 内部滚动部分内容。
我该如何解决这个问题?
** 跟进 **
如果代码中有时序控制,那么这似乎只是一个问题:
$('.slider').not(elem).hide(600);
elem.toggle(600);
上述代码存在问题,但以下代码可以正常运行:
$('.slider').not(elem).hide();
elem.toggle();
但是它缺乏良好的过渡效果。有没有办法让两者同时工作?谢谢。