2010-02-08 91 views
1

我已经实施了拱廊& SmoothDivScroll插件在一起,但在IE7 & IE8图像变得扭曲[比例不会缩放]略当其方向是纵向(即图像时加载到#main_image,图像容器中)。在IE7和IE8的拱廊Javascript画廊

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

回答

3

我发现这是一些CSS给我的问题。 IE8 & IE8显然不知道如何处理缩放,同时保持比例相同。我给了图像width & height属性,并且似乎解决它。

0

我也有类似的问题太多, 我认为smoothdivscroll不即很好地工作,因为,在我的问题, 我已经使用smoothdivscroll和jflow,它完美地工作在火狐,Chrome,Safari浏览器,歌剧等 但在即7和8,一切都有点疯狂。几小时或几天试图解决这个问题,我试图删除,并把事情一个接一个,取出滚动DIV之后,一切工作就像在IE浏览器:)

的网站,我有这个问题魅力:www.jardinsbelohorizonte.com

何塞莫雷拉

0

我发现了一个更完整的解决方案,这将迫使width属性是正确缩放:

首先你需要一个ID添加到大的图像,要做到这一点修改的代码中的onPageLoad功能下面一行在jquery.galleria.js文件:

var _img = $(new Image()).attr('src',_src).addClass('replaced'); 

添加它,因此它现在看起来像下面这样:

var _img = $(new Image()).attr('src',_src).attr('id','mainImg').addClass('replaced'); 

这现在增加了一个ID,图片,因此我t可以成为目标。

接下来,在你的索引文件(或任何你已经把发起画廊中的代码)你现在改变为下面的代码:

// 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值应用于图像即可完成!希望这可以帮助某人。

乔恩Tivy - 琼斯

0

我得到这个修复程序获得的jQuery库在IE8 + Windows Vista中工作。

  1. 从外部获取的Galleria代码:

 

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); 
        } 
    
    1

    我已经找到解决很多问题的关键是(文件)。就绪()以外的移动Galleria.loadTheme()。

    先尝试一下,如果不起作用,请尝试其他事情。

    2

    我刚才拆开我的整个页面,并把它重新走到一起找,这是我的选择

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

    一个逗号只要我删除此,整个事情的工作在IE7。我不知道这对现在是否有帮助,对许多人来说也可能是很明显的。