繁体   English   中英

隐藏一个div,取消隐藏另一个div,滚动到新的未隐藏div

[英]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 ).scro‌​‌​llIntoView();
});

如果您使用的是旧版jQuery并且无法升级,则可能需要放弃$("#someElement").scrollTop() ,而推荐使用$('#someElement').offset().top

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM