Scroll FancyBox在页面上打开得太低
我在我的页面上使用FancyBox,有时(但不总是),lightbox在页面下方打开得太远,底部被切断,让您向下滚动查看其余部分。通常,它将被定位在页面的中间位置 当我调用它时,我在Scroll FancyBox在页面上打开得太低,scroll,fancybox,position,css-position,Scroll,Fancybox,Position,Css Position,我在我的页面上使用FancyBox,有时(但不总是),lightbox在页面下方打开得太远,底部被切断,让您向下滚动查看其余部分。通常,它将被定位在页面的中间位置 当我调用它时,我在onStart方法中将它的位置设置为fixed,大多数时候它确实像预期的那样在中间打开-所以我不知道是什么原因导致它被抛出,但只是有时候 P>站点是:播放一个现有的站点(或者创建你自己的站点——你不需要一个帐户),然后点击中间的相册艺术打开灯箱。 任何关于这方面的线索都将不胜感激-谢谢 编辑:一些更新 如果我在打开
onStart
方法中将它的位置设置为fixed
,大多数时候它确实像预期的那样在中间打开-所以我不知道是什么原因导致它被抛出,但只是有时候
P>站点是:播放一个现有的站点(或者创建你自己的站点——你不需要一个帐户),然后点击中间的相册艺术打开灯箱。
任何关于这方面的线索都将不胜感激-谢谢
编辑:一些更新
- 如果我在打开FancyBox后调整窗口大小,它将在中心正确地重新定位(但只有在我再次关闭并重新打开它时,它才会再次移动得太低)
- 错误的定位似乎在WebKit浏览器(Safari和Chrome)中最常见
编辑2:我应该指出我们使用的Fancybox版本是1.3.4,而不是更新的2.0。我们的jQuery版本是1.6.4。使用Fancybox 2.0可能会解决这个问题,但是(我认为)这需要jQuery 1.7,它与我们正在使用的其他一些插件不兼容。因此,我更喜欢使用Fancybox 1.3.4的修复程序。我也看不到您的站点。但是你可以删除所有fancbox的内容,重新下载并安装。这将消除fancybox中的问题 否则,请检查您是否有一些代码不是针对fancybox的,而是针对fancybox的
但首先,升级到一个更新的jquery。您当前正在使用1.6。现在是1.7.2版本。他们已经修复了新版本中的一些错误 我访问了你的网页,并能够在发现bug后反复重现该问题,这是在使用Firefox 首先,以下是该问题的参考照片: 注:上图中,Fancybox未在浏览器中居中,艺术家照片的顶部就在您正在使用的图腾标签插件的下方 下一张参考照片是红框部分的特写,显示图腾标记器正在覆盖对象:
这两个问题是相关的。要复制页面上的FancyBox打开得太低问题,您需要单击几首歌曲之前播放过的居中大图像旁边的迷你艺术家图像,而图腾Ticker插件正在制作动画 这些参考图像显示了当时间正确时会发生什么。如果计时不正确,或者滑块正在使用缓存中尚未清除的图像,则需要重试。通常,你会开始看到图腾标记器与其他对象重叠 现在已经发现了这个bug,这里有一个工作解决方案来解决它。您将使用Fancybox插件中的回调在Fancybox即将设置动画时关闭图腾标记器,并在Fancybox关闭时重新打开图腾标记器 由于Totem Ticker没有任何API与之接口,因此必须使用该插件概述的流程,通过锚定按钮使用开始和停止选项。好消息是,你不需要有一个文本链接与之关联,从而使它不被看到。下面是要查看的代码:
jQuery Totem Ticker jQuery Before:
$('#trending ul').totemticker({
direction: 'up',
interval: 5000,
mousestop: true,
row_height: '74px'
});
jQuery Totem Ticker jQuery After:
$('#trending ul').totemticker({
direction: 'up',
interval: 5000,
mousestop: true,
row_height: '74px',
start: '#totemStart',
stop: '#totemStop'
});
jQuery Totem Ticker HTML Before:
<div id="trending" class="column aside">
<div class="section title"><span>Top Trending Stations</span></div>
<div class="fadeout"></div>
<ul></ul>
</div>
jQuery Totem Ticker HTML After:
<div id="trending" class="column aside">
<div class="section title"><span>Top Trending Stations</span></div>
<div class="fadeout"></div>
<ul></ul>
<a id="totemStart" href="#"></a>
<a id="totemStop" href="#"></a>
</div>
Imported raditaz.min.build File Before:
$("#album-art-anchor").fancybox({
scrolling: "auto",
autoscale: true,
autoDimensions: true,
width: 455,
height: 495,
titlePosition: "outside",
onStart: function () {
$("#fancybox-overlay").css({
position: "fixed",
overflow: "scroll"
});
},
onClosed: onTrackLightboxClosed
});
Imported raditaz.min.build File After:
$("#album-art-anchor").fancybox({
scrolling: "auto",
autoscale: true,
autoDimensions: true,
width: 455,
height: 495,
titlePosition: "outside",
onStart: function () {
$("#fancybox-overlay").css({
position: "fixed",
overflow: "scroll"
});
},
onClosed: onTrackLightboxClosed,
// Below is added above is original.
//
beforeShow: function(){
$('#totemStop').click();
},
afterClose: function(){
$('#totemStart').click();
},
onComplete: function(){
$.fancybox.center;
}
});
onStart
使用overflow:“scroll”
会在右侧为Chrome创建一个空的垂直条
另一方面,由于该网站正在开发中,除了Firefox和Firebug插件外,我还使用Firefox。它在查看源html页面时突出显示错误,并提供解决方案。例如,主页第389行是未关闭的类名。第587/589行是重复的ID。有些错误不是错误,比如插件将其唯一的标记注入标记时
编辑:根据您最近的SO问题编辑:请将Fancybox更新到与您正在使用的jQuery v1.6.4兼容的v2.0。Fancybox v2.0源文件说jQuery v1.6.0是所需的最低版本。如果有什么不清楚的地方,请让我知道,我会尝试以不同的方式解释。谢谢。无法帮助,收到此消息
我们很抱歉,但Raditaz目前在您的国家不可用
“这个问题没有得到足够的重视”(来自美国的人):P@daGUY-我无法复制您的问题:(位置似乎很好。我在Ubuntu 10.04上使用Chrome 16。问题是我正在听的Ozzy歌曲被跳过了。我不确定是我的电脑(2003 Dell服务器;)还是流。我会在更快的电脑上查看你的网站,因为有另一个替代音乐网站很酷:)编辑:请将Fancybox更新到v2.0,该版本与您正在使用的jQuery v1.6.4兼容。Fancybox v2.0源文件说jQueryV1.6.0是所需的最低版本。您之所以看到使用较旧版本的jQuery,是因为并非所有插件都使用较新版本的jQuery。jQuery V1.4.4对于许多站点来说非常普遍,但它是插件的要求,您必须考虑所有脚本。升级jQuery可能会导致比它解决的更多的问题。我们在整个网站上使用了很多插件,但并不是所有插件都与最新版本兼容,所以“只需更新jQuery”最终要比听起来复杂得多。我怎么可能知道呢?那只是我的一个想法。它有时会解决一些奇怪的问题,非常感谢!然而:Totem Ticker不能成为原因,因为它只是在5月25日才被添加到该站点(我可以通过在git中查看我的历史来确认),但是这个问题已经发生了很久(注意
setTimeout("$.fancybox.center;", 1000);