2015-08-03 54 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

謝謝!這完美地工作:-) –