2015-08-03 88 views
1

我已经意识到“帮助” - 在fancybox中的观点。 在这个fancybox我有一个导航menue。这菜单与锚链接。到现在为止还挺好。打开fancybox后滚动到锚点

现在我想打开这个fancybox并直接滚动到一个spezific主播。 这里我的代码,我怎么打开的fancybox:

$.fancybox({ 
     width  : 1000, 
     height  : 800, 
     minHeight : 800, 
     maxHeight : 800,    
     minWidth : 1000, 
     maxWidth : 1000, 
     fitToView : false, 
     autoSize : true, 
     closeClick : false, 
     openEffect : 'none', 
     closeEffect : 'none', 
     scrolling : 'yes', 
     href  : "#idofview", 
    }) 

我尝试了一些东西,但没有任何工程。 我想:

location.href = "#anchor"; 
//or 
location.hash = "#anchor"; 
//or 
afterShow: function() { 
    $(this).closest('.fancybox-inner').animate({ 
      scrollTop: $('.fancybox-overlay').scrollTop() + $("#anchorid").offset().top 
     }); 
//or 
$(document.body).scrollTop($('#anchorid').offset().top); 

我也试图触发我的锚链接的点击:

$("#btn_link").trigger('click'); 

是否有任何理由direktly滚动到一个的fancybox锚?

回答

1

您可能需要先找到你的目标锚的offset().top,然后就在.fancybox-inner选择动画到该位置(你不需要这个$(this).closest()方法在所有),因此:

jQuery(document).ready(function ($) { 
    $(".fancybox").fancybox({ 
     // API options 
     afterShow: function() { 
      var toScroll = $(".fancybox-inner").find("#anchor2").offset().top - 35; 
      $(".fancybox-inner").animate({ 
       scrollTop: toScroll 
      }, 1000); 
     } 
    }); // fancybox 
}); // ready 

通知 ,我从减去35px偏移(在var toScroll),因为的fancybox的填充,但是这是你可能需要打一个变量。

JSFIDDLE

+0

谢谢!这完美地工作:-) –