2012-05-22 23 views

回答

3

你可以通过css类来做到这一点。 例如:

<div class="image"></div> 

<style type="text/css"> 
    .image { 
     background: url(1.png) no-repeat top left; 
    } 
    .image:hover { 
     background: url(2.png) no-repeat top left; 
    } 
    .image:active { 
     background: url(3.png) no-repeat top left; 
    } 
</style> 
+0

该死!你打败了我:)欢迎btw ... – PhD

+0

谢谢你,很高兴见到这里的好人;) –

1

您可以将它们设置为三个不同的图像,并通过CSS所描述的波纹管控制它们。

#my-image { 
    background: url("/1.png"); 
} 

#my-image:hover { 
    background: url("/2.png"); 
} 

#my-image:active { 
    background: url("/3.png"); 
} 

但是常用的技术是css-sprites。您可以将这3张图片组合成一张图片。假设每张图片的图片都是100x100px,那么您的图片就是100x300px。然后你控制background-position。这消除了用户缺乏响应的问题,并且在您的服务器上更容易。

0

以上两种解决方案,不会因为一个在正常工作:积极的图像不会permantly change.You必须使用jQuery的,这和每个人都这样做也:

   <html> 
       <head> 
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
        <script type="text/javascript"> 
         $(document).ready(function(){ 
         $("#my_link").hover(function(){ 
          $(this).removeClass("class_1").addClass("class_2"); 
          },function(){ 
          $(this).removeClass("class_2").addClass("class_1"); 
         }); 

        $("#my_link").click(function(){ 
         $(this).removeClass("class_1").addClass("class_3"); 
        }); 
       }); 

      </script> 
      <style type="text/css"> 
       .class_1{background: url("/1.png") no-repeat top left;} 
       .class_2{background: url("/2.png") no-repeat top left;} 
       .class_3{background: url("/3.png") no-repeat top left;} 
      </style> 
     </head> 
     <body> 
       <a id="my_link" class="class_1" href="#" >Click here</a> 
     </body> 
     </html> 

这工作对我很好。我希望它能起作用!