1

我已经一起实现了 Galleria 和 SmoothDivScroll 插件,但是在 IE7 和 IE8 中,当图像的方向是纵向时(即当图像加载到图像容器#main_image 中时),图像会稍微失真[比例不保持缩放]。

在 Safari 和 Firefox 中,一切都很好。还有其他人遇到这个问题吗?你是怎么解决这个问题的?

4

6 回答 6

3

我发现是一些 CSS 给我带来了问题。IE7 和 IE8 显然不知道如何在保持比例不变的情况下处理缩放。我给出了图像widthheight属性,这似乎解决了它。

于 2010-02-18T00:13:11.793 回答
2

我刚刚拆开我的整个页面并将其重新组合在一起,发现它是我选项中的一个逗号

// Initialize Galleria
$('#galleria').galleria({
width:764,
transition: 'fade',
autoplay: 8000,
idleTime: 1000000, <-----THIS COMMA HERE (remove this)
});

一旦我删除它,整个事情就可以在 IE7 上运行。我不知道这对现在的任何人是否有任何帮助,而且这对许多人来说可能也是非常明显的。

于 2012-02-21T13:44:53.913 回答
1

我发现解决许多问题的关键是将 Galleria.loadTheme() 移到 (document).ready() 之外。

先试试这个,如果不行就乱用其他东西。

于 2010-10-25T18:36:25.743 回答
0

我也有类似的问题,我认为smoothdivscroll不适用于ie,因为在我的问题中,我使用了smoothdivscroll和jflow,它在firefox,chrome,safari,opera等上运行良好,但在ie 7和8上,一切都有些疯狂。数小时和数天试图解决问题,我试图一个一个地删除和放置东西,在删除滚动 div 后,一切都像 ie 上的魅力:)

我遇到这个问题的网站:www.jardinsbelohorizo​​nte.com

何塞·莫雷拉

于 2010-02-08T10:58:21.183 回答
0

我找到了一个更完整的解决方案,它将强制正确缩放宽度属性:

首先,您需要为大图像添加一个 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 值应用于图像即可!希望这可以帮助某人。

乔恩·蒂维-琼斯

于 2010-06-08T11:16:32.637 回答
0

我得到了这个让 jQuery Gallery 在 IE8 + Windows Vista 上工作的修复程序。

  1. 从以下位置获取 Galleria 代码:

 

jQuery(document).ready(function(){    
  //your code here    
});
  1. 以这种方式加载图库:

变量间隔;

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);
  }
于 2010-08-07T05:55:30.280 回答