2014-03-12 179 views
6

我使用Magnific Popup插件在Lightbox中顯示圖片。當我點擊Chrome瀏覽器中的圖片時,瀏覽器在頂部滾動,之後菜單無法點擊。Magnific Popup - 瀏覽器在圖片頂部點擊滾動

$('.img-item').magnificPopup({ 
    type: 'image', 
    gallery:{ 
     enabled:true 
    } 
}); 
+4

你還有什麼要顯示的代碼? HTML也許... – Bene

+0

確保你的插件沒有添加錨標籤href =「#」 – Patel

+2

沒有更多的信息,你是在浪費你的賞金。請發佈頁面HTML示例以及您正在使用的插件的完整列表(包括版本)。理想情況下,所有的JSFiddle :) –

回答

0

聽起來像有一個JS錯誤的地方或者你的形象被包裹成一個<a href=""></a>標籤,並將其與默認行爲干擾。

5

Magnific有一個選項fixedContentPos。默認情況下,它被設置爲'auto',導致它將內容修復到頂部。根據當前滾動,設置fixedContentPos: false應強制使用絕對位置。

+1

沒有工作,既不'自動',真,假。此外,嘗試與fixedBgPos和alignTop屬性,但沒有運氣,下面是我是如何做到這一點:http://stackoverflow.com/a/28749311/2615737 –

0

好吧,這是一個奇怪的事情。這是我如何解決它:

  1. 我從onReady取出.magnificPopup({代碼,而是將其移動到一個功能。

  2. 然後我添加了一個onlick事件到觸發彈出窗口的元素。

我不知道爲什麼,但工作。


下面是代碼:

的JavaScript

function attach_magnific_popup(){ 
jQuery('a.open-popup-link').magnificPopup({ 
     type: 'inline', 
     //fixedContentPos: true, 
     //fixedBgPos: true 
    }); 
} 

HTML:

<a href="#pop-up-content" class="open-popup-link" onclick="attach_magnific_popup();">Click here...!</a> 


<div id="pop-up-content" class="white-popup mfp-hide" > 
....Pop up content... 
</div> 

注意:我也有試過fixedBgPos,fixedContentPos,alignTop屬性,但沒有奏效。

4

對我來說,這是delegate:'a'選項的問題。無論它在哪裏設置,我需要添加fixedContentPos: false,這對我來說是個訣竅。

1

您需要使用:preventDefault()方法

的JavaScript:

function attach_magnific_popup(e){ 
e.preventDefault(); 
jQuery('a.open-popup-link').magnificPopup({ 
     type: 'inline', 
     //fixedContentPos: true, 
     //fixedBgPos: true 
    }); 
} 

HTML:

<a href="#pop-up-content" class="open-popup-link" onclick="attach_magnific_popup(event);">Click here...!</a> 
+0

這對我來說。佔位符href =「#」導致跳轉到頂部。 – squarecandy

4

好的人,我想我找到了解決辦法。

我剪掉我的完整劇本,但「fixedContentPos:假」,加入「noscroll」身體元素「打開」,並刪除它「親密」是很重要的:

$('.open-link').magnificPopup({ 
        type:'image', 
        closeOnBgClick: true, 
        fixedContentPos: false, 
        callbacks: { 
         open: function() { 
          jQuery('body').addClass('noscroll'); 
         }, 
         close: function() { 
          jQuery('body').removeClass('noscroll'); 
         } 
        } 
      }); 

最後,創建CSS規則noscroll爲:

body.noscroll 
{ 
    overflow-y:hidden!important; 
} 

「fixedContentPos:假」阻止使用用於身體的固定位置,並保持在相同的位置上的滾動條。但是,它不會阻止滾動,用戶仍然可以向上/向下滾動。使用overlow-y:隱藏滾動條並禁用鼠標滾輪。

+0

確定最佳解決方案。只要執行'fixedContentPos:false'就意味着用戶可以滾動,所以這沒有用。這個解決方案就像一個魅力! – denislexic

1

看起來像是將magnificPopup代碼從$(document).ready()移到$(window).load()爲我做的。這裏是我的代碼:

$(window).load(function() { 
    $('.open-popup-link').magnificPopup({ 
    type:'inline', 
    closeBtnInside: true, 
    fixedContentPos: false, 
    midClick: true 
    }); 
}); 
相關問題