在div翻转上交换图像的jquery

时间:2014-08-01 00:37:47

标签: javascript jquery

我一直试图在div翻转上实现简单的交换效果,但它无法正常工作。

这是HTML

<li><div id="main1"><a href="#"><img src="images/plane1.jpg" id="image1" style="margin:0 4px; margin-left:0;"/></a>
                <div class="flex-caption">
                  <h3>Hollywood</h3>
                </div></div>
            </li>

和jQuery

$(function () {
    $('#main1').hover (function () {
    $('#image1').src="images/img01.jpg";
    }, function () {
    $('#image1').src="images/plane1.jpg";

    });});

2 个答案:

答案 0 :(得分:1)

尝试使用.attr()方法而不是.src。类似的东西:

$('#image1').attr('src', 'images/img01.jpg')

答案 1 :(得分:1)

PURE CSS demo 1 PURE CSS demo 2 (With fade fx)
更好的方法? 没有JS。 为什么?
原因如果你使用JS ,在悬停时你需要等待新服务器请求新图像所以...通过这样做你将获得非常专业的结果。

<li>
  <div id="main1">
    <a href="#">
       <img src="images/plane1.jpg"/>
       <img src="images/img01.jpg"/> <!-- this one is hidden but loaded! -->
    </a>
    <div class="flex-caption">
      <h3>Hollywood</h3>
    </div>
  </div>
</li>

CSS:

#main1 > a       img+img{ display:none;  }
#main1 > a:hover img+img{ display:block; }

如果您只是学习jQuery,JS一般而且您想玩:

var $img = $('#image'); // Cache the elements you plan to reuse!
$('#main1').hover(function() {
    $img[0].src = "images/img01.jpg";
}, function () {
    $img[0].src = "images/plane1.jpg";
});

或者也使用数组:

var arr = ["images/plane1.jpg", "images/img01.jpg"];
var $img = $('#image');
$('#main1').hover(function() {
    $img[0].src = arr.reverse()[0];
});

或者还使用条件运算符?: (AKA 三元运算符):

var $img = $('#image');
$('#main1').hover(function( ev ) {
   $img[0].src = "images/"+ (ev.type=="mouseenter"?"img01":"plane1") +".jpg"; 
});