1

ホバー時にある画像を別の画像にフェードアウトし、マウスがオブジェクトから離れたらホバーした画像をフェードアウトできるようにしたいです。DIV内に密集しているため、周囲にスペースが必要ないため、機能していないSPANのみを使用しようとしました。何か案が?私のスクリプトは次のとおりです。

<style>
.fade {
          position: relative;
    border: 0;
    margin: 0 auto;
    padding: 0;
        }

        .fade div {
          position: absolute;
          top: 0;
          left: 0;
          display: none;
          height: 100px;
          width: 240px;
    border: 0;
    margin: 0 auto;
    padding: 0;
        }
-->
</style>

    <script type="text/javascript">
    <!--

    $(function () {
        // find the div.fade elements and hook the hover event
        $('span.fade').hover(function() {
            // on hovering over find the element we want to fade *up*
            var fade = $('> div', this);

            // if the element is currently being animated (to fadeOut)...
            if (fade.is(':animated')) {
                // ...stop the current animation, and fade it to 1 from current position
                fade.stop().fadeTo(250, 1);
            } else {
                fade.fadeIn(250);
            }
        }, function () {
            var fade = $('> div', this);
            if (fade.is(':animated')) {
                fade.stop().fadeTo(3000, 0);
            } else {
                fade.fadeOut(3000);
            }
        });
    });

    //-->
    </script>

HTML:

<span class="fade">
        <img src="theImages/sApproveBW.jpg" alt="Who we are" />
        <div>
            <img src="theImages/sApprove.jpg" alt="Who we are" />
        </div>
    </span><img src="theImages/bApprove.jpg" height=100 width=240 /><br><img src="theImages/tApprove.jpg" height=100 width=240 />

最初の画像の下に少し空白があります。とにかくそれを取り除くために?

外観:http://img805.imageshack.us/img805/7417/imgct.png

緑の画像から一番上の最初の画像の間の空白を取り除きたいです。

私の新しいHTMLページ:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>Fade Method 1 (two images)</title>
    <style type="text/css" media="screen">
    <!--
* {
    margin: 0;
    padding: 0;
}
        img { border: 0;
display: block;
}

.fade {
    position: absolute
        }

        .fade div {
          position: absolute;
          top: 0;
          left: 0;
          display: none;
          height: 100px;
          width: 240px;
        }

    -->
    </style>

<script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>


    <script type="text/javascript">
    <!--

    $(function () {
        // find the div.fade elements and hook the hover event
        $('span.fade').hover(function() {
            // on hovering over find the element we want to fade *up*
            var fade = $('> div', this);

            // if the element is currently being animated (to fadeOut)...
            if (fade.is(':animated')) {
                // ...stop the current animation, and fade it to 1 from current position
                fade.stop().fadeTo(250, 1);
            } else {
                fade.fadeIn(250);
            }
        }, function () {
            var fade = $('> div', this);
            if (fade.is(':animated')) {
                fade.stop().fadeTo(3000, 0);
            } else {
                fade.fadeOut(3000);
            }
        });
    });

    //-->
    </script>
</head>
<body id="page">
    <span class="fade">
        <img src="theImages/sApproveBW.jpg" alt="Who we are" />
        <div>
            <img src="theImages/sApprove.jpg" alt="Who we are" />
        </div>
    </span>
<img class=t src="theImages/bApprove.jpg" height=100 width=240 />
<img class=t src="theImages/tApprove.jpg" height=100 width=240 />
</body>
</html>

しかし今、私は2つの画像を持っています。2番目の画像(緑)は最初の画像(黒)の下にあり、3番目の画像(黄色)は黒の画像のすぐ下にあります。次に例を示します:http://img266.imageshack.us/img266/9557/imgdu.png

4

3 に答える 3

1
img {
    display:block;
}​​​​
.fade div {
    margin-top:-100px !important;
}

を削除しtop:0px; left:0px;て上記のコードを追加すると、それが整理されます。

于 2012-07-16T16:40:50.713 に答える
1

追加してみてください:display:block各画像に追加すると、機能するはずです

私はあなたのコードを少し編集しましたが、ここにあります:http: //jsfiddle.net/nTCr4/16/

于 2012-07-16T16:39:40.767 に答える
1

ところで、スペースと画像に関する問題は、画像が親要素内に自然に配置されることです。これにより、画像にCSSプロパティを使用できなくなりますvertical-align:middle;。これで修正されます。しかし、ここに別の例があります:

jsBinデモ

必要なのはこのHTMLだけです。

<div class="fade">
  <img src="" alt="" />  
  <img src="" alt="" />  
</div>

このCSS:

 div.fade {
    position: relative;
    border: none;
    width:240px;
    height:100px;
}
div.fade img{
    position:absolute;
    top:0px;
    left:0px;
}

AND jQ:

  var imgTwo = $('.fade').find('img:eq(1)');
  imgTwo.hide();
  
  $('.fade').hover(function() {
    imgTwo.stop().fadeTo(300,1);
  },function(){
    imgTwo.stop().fadeTo(3000,0);
  });
于 2012-07-16T17:03:18.870 に答える