2017-10-30 16 views
2

私は、サイト上のパスが上がったときに画像を表示しようとしています。 ホバー部分がうまく機能します。しかし、私がパスを「マウスアウト」すると、イメージは削除されますが、赤い垂直線が常に存在します。吹き出し前の縦線CSS

enter image description here

は私がdisplay : "none"イベント"mouseout"を設定するためにDOMを使用しようとしました:推移していない

.imgElu { 
    height: 23%; 
    width: auto; 
    position: absolute; 
    bottom: 33.1%; 
    left: 36.7%; 
    border-radius: 50%; 
    border: 3px solid #ac2c2d; 
} 

enter image description here

推移

この

は私のCSSですトリガーされます。しかし、第2の写真にあなたが見ることができるものを示す前に、ラインは常に短時間表示されます。

何か助けていただければ幸いです。

UPDATE:パスをホバリングするとき、私は簡単にこの赤い線を得た私はなぜ理解:イメージがURLであるとロードされるためです。そして、それが読み込まれるまで、CSSは何も「境界に接している」。今はロードされないうちに何も表示しないようにしていますが、どうしたらいいですか?

UPDATE 2:これは私のjsのコードです:

siege[0].addEventListener("mouseover", function() { //when mouseover 

    var actualImg = siege.Vignette; //gets the url Image 
    document.getElementById("photoElu").src = siege.Vignette; //puts the url on the img div 

    if (eluPresent == false) { 
    $('<p class="tooltip"></p>').text("Siège non occupé").appendTo('body').fadeIn('slow'); 
    } else { //If there is something to show : 
    $('<p class="tooltip"></p>').text("Siège n°"+siege.Seat+" "+siege.Name).appendTo('body').fadeIn('slow'); 

    document.getElementById('photoElu').style.border = "3px solid #ac2c2d"; //sets the css to the img div 



    } 

    siege.animate(hoverStyle, animationSpeed); 


}, true); 

siege[0].addEventListener("mouseout", function() { //when mouseout 


    $('.tooltip').remove(); 
    document.getElementById("photoElu").src = ""; //remove the url 
    siege.animate(style, animationSpeed); 
    document.getElementById('photoElu').style.border = "0px solid #ac2c2d"; //sets the css to remove the border 


}, true); 
+0

私は、この垂直線を考えて推移していません。ホバー状態のためにあなたのスタイルやjsを投稿できるかどうかをより良く理解するために、 –

+0

私はあなたの問題を解決するのに役立つかもしれないアップデートを行いました。 – Lawris

答えて

0

は当初コンテンツを非表示にします。

.imgElu { 
     height: 23%; 
     width: auto; 
     position: absolute; 
     bottom: 33.1%; 
     left: 36.7%; 
     border-radius: 50%; 
     border: none; 
     display: none; 
    } 

divを配置するときに境界線のプロパティを設定する必要があります。

.imgElu:hover { 
     border: 3px solid #ac2c2d; 
     display: /*your display setting*/ 
    } 
+0

私はおそらく私の問題を解決するのに役立つアップデートを行いました。 – Lawris

1

これは、表示されている3pxの幅の枠線です。この問題の代わりに画像のボックスシャドウスタイルを指定します。

0

使用通常の状態では

border: 0px solid #3c2c2d; 

、そしてあなたのホバー状態で

border: 3px solid #3c2c2d; 

jqueryを使用してホバースタイルを追加する場合は、jquery .css()メソッドを使用します。 ; `縦線のようにそれを作っているオート:.imageElu``の境界線は、かつて私はそれがとても `幅の内側に何も持っていないと思います

・ホープ、このヘルプ

+0

私の更新を確認してください... – Lawris

+0

さて、要素を拾ってイメージが完全にロードされる前に、この赤い線が表示されています。その場合は、そこに使用しているjqueryを表示してください。 –

+0

非常に短い時間の間、要素を移動すると、赤い線のみが表示されます... 2回目の更新を確認してください。 – Lawris

関連する問題