Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Fancybox移除滚动条,移动页面_Jquery_Css_Fancybox - Fatal编程技术网

Jquery Fancybox移除滚动条,移动页面

Jquery Fancybox移除滚动条,移动页面,jquery,css,fancybox,Jquery,Css,Fancybox,当我点击一个加载Fancybox的链接时,整个背景页面移到右边的DotoFancy框,移除滚动条。我尝试过在其他论坛中添加这个JS,但没有成功。下面有一个链接(单击品牌标题),不确定为什么会删除滚动条 我像这样加载对象 <div class="fancybox-hidden" style="display:none;"> <div id="post-<?php the_ID(); ?>" class="brand_

当我点击一个加载Fancybox的链接时,整个背景页面移到右边的DotoFancy框,移除滚动条。我尝试过在其他论坛中添加这个JS,但没有成功。下面有一个链接(单击品牌标题),不确定为什么会删除滚动条

我像这样加载对象

<div class="fancybox-hidden" style="display:none;">
                          <div id="post-<?php the_ID(); ?>" class="brand_list" style="width:800px !important;">
                            <h2>The Beers</h2>
                            <div class="beers">
                                <?php the_content(); ?>
                                <div class="clear"></div>
                            </div>
                          </div>
                        </div>


正在删除滚动条,因为jquery.fancybox.pack.js正在添加属性
overflow:hidden.fancybox lock
将代码>发送到
元素。有几种方法可以处理这个问题

1) 修改jquery.fancybox.pack.js中的javascript,以在显示fancybox时不将此类添加到body元素。
2) 修改jquery.fancybox.css(第169行)中的css,以不添加
溢出:隐藏.fancybox锁
选择器的code>属性。
3) 在您自己的css文件中,以及
!重要信息
声明主体上的溢出属性以覆盖fancybox css(即
主体{overflow:auto!important;}
)。

4) 添加
溢出:自动
作为直接位于
标记上的内联样式。

正如BigMacAttack所述,问题在于
溢出:隐藏的
样式添加到
元素。这将从正文中删除滚动条并防止滚动

但是,接受溢出:隐藏的解决方案是使用额外的填充来补偿额外的正文宽度(由于滚动条丢失)。只需在打开覆盖层之前保存身体宽度,并在需要时添加额外的填充

// before opening
var originalWidth = $('body').width(); 

// when open
if ($('body').width() > originalWidth) {
    $('body').css("padding-right", ($('body').width() - originalWidth) +"px");
}

// after closing
$('body').css("padding-right", "");

我也有同样的问题。 以下是您需要做的:

1) 使用此选项启动Fancybox:

helpers:{overlay: {css: {'overflow': hidden}}}
2) 在fancybox css之后执行的任何css文件中添加此行

html.fancybox-lock {overflow-y: scroll !important}

这将使Fancybox在不移动整个网站的情况下打开和关闭,不会影响html或正文标记的溢出(当html标记中存在Fancybox lock类时,它仅设置'overflow-y:scroll')

适用于将iframe与Fancybox一起使用的用户,这会将滚动条放回主页上

if ($( "body", window.parent.document ).hasClass( "compensate-for-scrollbar" ) ) {
   $( "body", window.parent.document ).removeClass( "compensate-for-scrollbar" );
}

似乎不能再制造问题了。你有一个活生生的例子吗?@chrisarton ya很抱歉,这个链接一开始不起作用。看看我帖子上的“问题”,它似乎没有为我删除滚动条,你使用的是什么浏览器?你在所有浏览器上都有同样的问题吗?@chrisarton我真的试过Chrome/Safari/Moz,但它对我不起作用
if ($( "body", window.parent.document ).hasClass( "compensate-for-scrollbar" ) ) {
   $( "body", window.parent.document ).removeClass( "compensate-for-scrollbar" );
}