我使用Magnific Popup插件在Lightbox中显示图片。当我点击Chrome浏览器中的图片时,浏览器在顶部滚动,之后菜单无法点击。Magnific Popup - 浏览器在图片顶部点击滚动
$('.img-item').magnificPopup({
type: 'image',
gallery:{
enabled:true
}
});
我使用Magnific Popup插件在Lightbox中显示图片。当我点击Chrome浏览器中的图片时,浏览器在顶部滚动,之后菜单无法点击。Magnific Popup - 浏览器在图片顶部点击滚动
$('.img-item').magnificPopup({
type: 'image',
gallery:{
enabled:true
}
});
听起来像有一个JS错误的地方或者你的形象被包裹成一个<a href=""></a>
标签,并将其与默认行为干扰。
Magnific有一个选项fixedContentPos
。默认情况下,它被设置为'auto',导致它将内容修复到顶部。根据当前滚动,设置fixedContentPos: false
应强制使用绝对位置。
没有工作,既不'自动',真,假。此外,尝试与fixedBgPos和alignTop属性,但没有运气,下面是我是如何做到这一点:http://stackoverflow.com/a/28749311/2615737 –
好吧,这是一个奇怪的事情。这是我如何解决它:
我从onReady
取出.magnificPopup({
代码,而是将其移动到一个功能。
然后我添加了一个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属性,但没有奏效。
对我来说,这是delegate:'a'
选项的问题。无论它在哪里设置,我需要添加fixedContentPos: false
,这对我来说是个诀窍。
您需要使用: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>
这对我来说。占位符href =“#”导致跳转到顶部。 – squarecandy
好的人,我想我找到了解决办法。
我剪掉我的完整剧本,但“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:隐藏滚动条并禁用鼠标滚轮。
确定最佳解决方案。只要执行'fixedContentPos:false'就意味着用户可以滚动,所以这没有用。这个解决方案就像一个魅力! – denislexic
看起来像是将magnificPopup代码从$(document).ready()
移到$(window).load()
为我做的。这里是我的代码:
$(window).load(function() {
$('.open-popup-link').magnificPopup({
type:'inline',
closeBtnInside: true,
fixedContentPos: false,
midClick: true
});
});
你还有什么要显示的代码? HTML也许... – Bene
确保你的插件没有添加锚标签href =“#” – Patel
没有更多的信息,你是在浪费你的赏金。请发布页面HTML示例以及您正在使用的插件的完整列表(包括版本)。理想情况下,所有的JSFiddle :) –