[英]Hide one div, unhide another div, scroll to the new unhidden div
我有一个函数closeGeneralHelp
,它closeGeneralHelp
一个参数: idtag
。 该功能应该执行以下操作:
一) slideUp
“帮助” DIV,B) slideDown
一组的div和然后c)滚动,跳跃,或以其它方式去一个特定的(但动态地确定)该组的div经由暴露的那其他分区slideDown
。
我有两个div类(“ DivsToShow”和“ DivToHide”)。 “ DivsToShow”中还包含其他一些div,并且每个div具有唯一的id
(这就是idtag
)。
(a)和(b)部分工作正常。 不管我尝试什么,滚动到特定的(但动态确定的)div似乎都失败了。 这是代码。 每个/ * * /注释块代表一个单独的尝试,但尝试失败(但失败)。
对(c)工作有帮助吗? 我是JavaScript / jQuery婴儿。 因此,任何与合理相关的建议/指针也将受到赞赏。
function closeGeneralHelp(idtag){
$(".DivsToShow").slideDown("slow");
$(".DivToHide").slideUp("slow");
/* var divid = document.getElementById(idtag);
divid.style.display = 'block';
divid.scrollIntoView(true); */
/* document.getElementById(idtag).scrollIntoView();*/
/* $(window).scrollTo(idtag,800,{queue:true});*/
/* window.location.hash = idtag;*/
/* window.setTimeout(function() {window.scroll(0, findPos(idtag));}, 5);*/
}
谢谢!
您需要一个回调函数,在这种情况下,完成滑动后:
$(".DivToHide").slideUp("slow");
$(".DivsToShow").slideDown("slow", function(){
var $ShownDiv = $(this);
// this is the callback of slidedown, after it is done, perform this:
$('html,body').scrollTop( $ShownDiv.scrollTop() );
// Or animated:
$('html,body').animate({scrollTop: $ShownDiv.scrollTop()}, 1000); // in ms
// Or more native JS
document.getElementById( $(ShownDiv)[0].id ).scrollIntoView();
});
如果您使用的是旧版jQuery并且无法升级,则可能需要放弃$("#someElement").scrollTop()
,而推荐使用$('#someElement').offset().top
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.