我如何使用fancybox 3避免页面短移

时间:2019-01-07 10:51:48

标签: jquery fancybox

我在joomla网站上的某些图库中使用了fancybox(版本3.5.7)。在打开页面,打开fancybox-modal和关闭页面时,缩略图页面的整个主体都会产生很小的偏移。页面移动了很短的时间,然后又回到了原来的位置(请参阅对http://www.fischer-club.ch/index.php/unser-verein/retro-fotos/1966-training-am-sonntag的影响)。 如何避免这种转变?

我将fancybox与另一个称为masonry的jQuery脚本结合使用。我试图停用砌体脚本,但仍会发生这种变化。我还尝试了其他解决方案中不同的解决方案,以解决fancybox的班次问题,但是它们大多与fancybox的版本2有关,因此没有任何帮助。 这种转变发生在不同的浏览器上,而不是在智能手机上。 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

默认情况下,脚本通过为overflow: hidden;元素应用body来隐藏页面滚动条。由于这会导致body元素扩展以填充可用空间,因此脚本还将计算垂直滚动条的宽度,并使用该值设置body元素的右边距。效果很好(您可以在首页和所有演示中看到),但是可以通过添加一些其他CSS规则(例如,为body元素设置100%的宽度)来中断此操作。

解决方案是删除(通常是不必要的)破坏默认工作流程的CSS规则,或者设置$.fancybox.defaults.hideScrollbar = false;来防止隐藏页面滚动条。

编辑:您的情况是,页面移位是由以下CSS规则引起的:

body {
    transition: all 400ms ease;
}

例如,您正在为所有内容设置动画,甚至是fancybox添加的margin-right。因此,请删除该CSS规则,或者将all更改为width或您要设置动画的任何内容。