Javascript图像翻转与onclick切换

时间:2012-07-19 19:15:05

标签: javascript jquery

我目前有代码翻转图像链接,如下所示:

<a id="show" href="#"><img src="images/show-me.png" border=0 onmouseover="this.src='images/show-me_over.png';" onmouseout="this.src='images/show-me.png'"></a>

单击此按钮会显示div

jQuery(document).ready(function(){
    jQuery("#show").toggle(
        function(){
            jQuery('#home-hidden-extra').animate({'height': '480px'} ,1000);},
        function(){
            jQuery('#home-hidden-extra').animate({'height': '0px'} ,1000);}
    );
});

我想做什么,但我无法找到/弄清楚当隐藏div时使用show_me.png和show_me-over.png,然后在显示div时使用hide_me.png和hide_me-over.png。

实现这个目标的最简单方法是什么?

再次感谢!

2 个答案:

答案 0 :(得分:1)

您应该将静态悬停样式放到CSS中。定义

.linkShow {
    background-image: url("images/show_me.png");
}

.linkShow:hover {
    background-image: url("images/show_me_hover.png"); 
}

.linkHide {
    background-image: url("images/hide_me.png");
}

.linkHide:hover {
    background-image: url("images/hide_me_hover.png"); 
}

然后使用jquery将这些类添加到链接中。

$("#show").removeClass().addClass("linkShow");

答案 1 :(得分:0)

这应该有效:

<强> HTML

    <a id="show" href="#">
      <img id="the-image" src="images/show-me.png" />
    </a>

<强> JS

  $(document).ready(function(){
    setupHover(); /* Defined below */
    $('#show').toggle(function(){
        $('#home-hidden-extra').animate({'height': '480px'} ,1000);
        setupHover();
    },function(){
        $('#home-hidden-extra').animate({'height': '0px'} ,1000);
        setupHover();
    });
  });

  function setupHover(){
      /* Unbind existing hover handlers */
      $('#show').unbind('mouseenter mouseleave');

      /* Use the correct image filenames depending on the situation */

      if($('#home-hidden-extra').height() > 0){
        images = ['show-me.png','show-me_over.png'];
      }
      else {
        images = ['hide_me.png','hide_me-over.png'];
      }
      $('#show').hover(function(){
          $('#the-image').attr('src','images/' + images[1]);
        },function(){
          $('#the-image').attr('src','images/' + images[0]);
        });
  }