2016-07-05 7 views
0

this animation of a incineration plantでは、訪問者が番号付きボタンを転がると、最初のimgが非表示になり、別のimgが表示されます。 表示するすべての画像がプリロードされています。2つのGIF画像を切り替えるときに瞬きを避ける方法は?

<script type="text/javascript"> 
var rep = HOTE + 'images/visites-dechets/uiom-kva-2/'; 

var imagesOver = new Array(
    'uiom-kva-1.gif', 
    'uiom-kva-2.gif' 
/* others images...*/ 
); 

window.onload = function() { 
    preloadImages(rep, imagesOver); 
    preloadFlag = true; 
} 

var prev_img = ''; 

function switchImg(sh, hi) { 
    jQuery("#" + sh).show(); 
    jQuery("#" + hi).hide(); 
} 
</script> 
<div id="uiom" style="text-align: center;"> 
<img src="/images/visites-dechets/uiom-kva-2/uiom-kva.gif" id="img_usine" alt="" width="1000" height="600" usemap="#uiom-kva" style="height: auto; max-width: 100%;" /> 
<img src="/images/visites-dechets/uiom-kva-2/uiom-kva-1.gif" id="img_usine1" alt="" width="1000" height="600" usemap="#uiom-kva" style="height: auto; max-width: 100%; display: none;" /> 
<img src="/images/visites-dechets/uiom-kva-2/uiom-kva-2.gif" id="img_usine2" alt="" width="1000" height="600" usemap="#uiom-kva" style="height: auto; max-width: 100%; display: none;" /> 
<!-- others img... --> 
<map id="uiom-kva" name="uiom-kva"> 
<area shape="circle" alt="" coords="101,484,22" href="#" id="btn-anim-1" onmouseover="switchImg('img_usine1', 'img_usine');return true" onmouseout="switchImg('img_usine', 'img_usine1');return true" /> 
<area shape="circle" alt="" coords="102,253,22" href="#" id="btn-anim-2" onmouseover="switchImg('img_usine2', 'img_usine');return true" onmouseout="switchImg('img_usine', 'img_usine2');return true" /> 
<!-- others areas... --> 
</map> 
</div> 

ボタンを初めてロールオーバーすると、(すべてのブラウザで)画像が変更されると点滅が表示されます。あなたはこれを避ける方法を知っていますか? ?

あなたは

+0

こんにちは、私はあなたがトリガーのためのより大きな領域を必要と思う、それは、小さなスポットの代わりに背景と全体のセクションを与えることを恐れてはいけない、それはユーザーの経験を向上させます。表示/非表示については、img.srcを試してみてください.stackoverflow.com/questions/21805943/preventing-image-flicker-on-hover-when-replacing-it-with-other-image-css – bfmags

+1

代わりに 'z-index'を利用して画像に積み重ねておき、ホバーすると上の画像にフェードアウトしてその画像を表示します。 – Adjit

+0

私はこの解決策を試して、瞬きがなくなった。しかし、いくつかの欠点があります:gifがより早く再生される(?)、アニメーションが常に最初から始まらない、絶対にポジショニングを使用することを余儀なくされる あなたの助けをまだありがとう – Michel

答えて

0

あなたが(代わりにショーと非表示の)スムーズな結果を生成するためにjQueryのフェードインとフェードアウト機能を使用することができますありがとうございました。

+0

画像は積み重ねる必要があります私の場合のように静的よりむしろポジション:絶対、相対など)を使用して、充足した遷移を得ることができます。それ以外の場合、フェードアウトしているimgは一番上に残ります。一方、フェードインしているimgは下になります。 ここでは、fadeInとfadeOutを実装しています:http://www.energie-environnement.ch/component/content/記事/ 132-fr-fr/la-maison/visites-dechets/1444?tmpl =コンポーネント – Michel

関連する問題