Galleria と SmoothDivScroll プラグインを一緒に実装しましたが、IE7 と IE8 では、画像の向きが縦向きの場合 (つまり、画像が #main_image、画像コンテナーに読み込まれる場合) に、画像がわずかに歪んでしまいます [スケーリングで比率が保持されません]。
Safari と Firefox では、すべて問題ありません。他の誰かがこの問題に遭遇しましたか? これをどのように修正しましたか?
Galleria と SmoothDivScroll プラグインを一緒に実装しましたが、IE7 と IE8 では、画像の向きが縦向きの場合 (つまり、画像が #main_image、画像コンテナーに読み込まれる場合) に、画像がわずかに歪んでしまいます [スケーリングで比率が保持されません]。
Safari と Firefox では、すべて問題ありません。他の誰かがこの問題に遭遇しましたか? これをどのように修正しましたか?
ページ全体を分解して元に戻し、オプションに 1 つのコンマが含まれていることを確認しました。
// Initialize Galleria
$('#galleria').galleria({
width:764,
transition: 'fade',
autoplay: 8000,
idleTime: 1000000, <-----THIS COMMA HERE (remove this)
});
これを削除するとすぐに、すべてがIE7で機能しました。これが今誰かの助けになるかどうかはわかりませんが、おそらく多くの人にとって非常に明白なことでもあります.
多くの問題を解決するために私が見つけた鍵は、Galleria.loadTheme() を (document).ready() の外に移動することです。
最初にそれを試して、うまくいかない場合は他のことをいじってください。
正しくスケーリングされた width プロパティを強制する、より完全なソリューションを見つけました。
まず、大きな画像に 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 値を画像に適用するだけで完了です。これが誰かに役立つことを願っています。
ジョン・ティヴィ・ジョーンズ
私も同様の問題を抱えていました.smoothdivscrollはieではうまく機能しないと思います.なぜなら、私の問題ではsmoothdivscrollとjflowを使用したからです.firefox、chrome、safari、operaなどでは完全に動作しましたが、ie 7と8では、すべてが少し狂っていました。問題を解決しようとして何時間も何日もかけて、スクロールdivを削除した後、物事を1つずつ削除して配置しようとしましたが、すべてが魅力のように機能しました:)
私がその問題を抱えていたサイト: www.jardinsbelohorizonte.com
ホセ・モレイラ
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);
}