我已经一起实现了 Galleria 和 SmoothDivScroll 插件,但是在 IE7 和 IE8 中,当图像的方向是纵向时(即当图像加载到图像容器#main_image 中时),图像会稍微失真[比例不保持缩放]。
在 Safari 和 Firefox 中,一切都很好。还有其他人遇到这个问题吗?你是怎么解决这个问题的?
我已经一起实现了 Galleria 和 SmoothDivScroll 插件,但是在 IE7 和 IE8 中,当图像的方向是纵向时(即当图像加载到图像容器#main_image 中时),图像会稍微失真[比例不保持缩放]。
在 Safari 和 Firefox 中,一切都很好。还有其他人遇到这个问题吗?你是怎么解决这个问题的?
我发现是一些 CSS 给我带来了问题。IE7 和 IE8 显然不知道如何在保持比例不变的情况下处理缩放。我给出了图像width
和height
属性,这似乎解决了它。
我刚刚拆开我的整个页面并将其重新组合在一起,发现它是我选项中的一个逗号
// Initialize Galleria
$('#galleria').galleria({
width:764,
transition: 'fade',
autoplay: 8000,
idleTime: 1000000, <-----THIS COMMA HERE (remove this)
});
一旦我删除它,整个事情就可以在 IE7 上运行。我不知道这对现在的任何人是否有任何帮助,而且这对许多人来说可能也是非常明显的。
我发现解决许多问题的关键是将 Galleria.loadTheme() 移到 (document).ready() 之外。
先试试这个,如果不行就乱用其他东西。
我也有类似的问题,我认为smoothdivscroll不适用于ie,因为在我的问题中,我使用了smoothdivscroll和jflow,它在firefox,chrome,safari,opera等上运行良好,但在ie 7和8上,一切都有些疯狂。数小时和数天试图解决问题,我试图一个一个地删除和放置东西,在删除滚动 div 后,一切都像 ie 上的魅力:)
我遇到这个问题的网站:www.jardinsbelohorizonte.com
何塞·莫雷拉
我找到了一个更完整的解决方案,它将强制正确缩放宽度属性:
首先,您需要为大图像添加一个 id,为此更改 jquery.galleria.js 文件中 onPageLoad 函数中的以下代码行:
var _img = $(new Image()).attr('src',_src).addClass('replaced');
添加到它,使其现在看起来如下所示:
var _img = $(new Image()).attr('src',_src).attr('id','mainImg').addClass('replaced');
现在,这会为图像添加一个 id,以便它可以被定位。
接下来,在您的索引文件中(或者您放置启动画廊的代码的位置),您现在更改代码如下:
// fade in the image & caption
if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow
image.css('display','none').fadeIn(1000);
}
var newHeight = 420;
var mainImage = document.getElementById('mainImg');
var imgInitHeight = mainImage.height;
var imgInitWidth = mainImage.width;
var imgScaleRatio = newHeight/imgInitHeight;
var newWidth = Math.ceil(imgInitWidth*imgScaleRatio);
image.css('height', newHeight);
image.css('width', newWidth);
caption.css('display','none').fadeIn(1000);
变量 newHeight 是您希望显示大图像的高度。接下来,您需要定位图像以便在调整大小之前获得其高度和宽度,这些值分别存储在 imgInitHeight 和 imgInitWidth 中。现在,正如您所知道的 newHeight 和 imgInitHeight 值,可以计算图像必须缩放以达到其新尺寸的比率,这存储在 imgScaleRatio 属性中。
确定比率后,您现在可以计算图像的 newWidth 并确信它已正确缩放。完成后,只需将 css 值应用于图像即可!希望这可以帮助某人。
乔恩·蒂维-琼斯
我得到了这个让 jQuery Gallery 在 IE8 + Windows Vista 上工作的修复程序。
jQuery(document).ready(function(){
//your code here
});
变量间隔;
Galleria.loadTheme(’/js/galleria.classic.js’);
interval = setInterval(’loadMyGalleria()’,1000);
function loadMyGalleria() {
if ($(’#galleria > div’).size() == 0) {
$(’#galleria’).galleria({
image_crop: true,
transition: ‘fade’,
transition_speed: 1000,
data_config: function(img) {
return {
description: $(img).next(’p').html() };
}
});
clearInterval(interval);
}