jquery animate 实现背景图动画效果出现的问题?

demo在这里https://jsfiddle.net/pkzt064c/

.d1{
    width:20px;
    height:20px;   background:url(http://www.nuoyidata.com/templets/heibai/images/menu_ico1.png) no-repeat; 
    background-position:0 0;
}
<div class="d1"></div>

$(function(){
   $(".d1").hover(function(){
      $(this).animate({
         "background-position-x":"0",
          "background-position-y":"-29px"
       },500);
   },function(){
       $(this).animate({
         "background-position-x":"0",
         "background-position-y":"0"
       },500);
   });
});

chrome没有问题。
ff下无法移动。
IE7,8没有问题。
IE9以上,鼠标移上有动画效果,移出的话没有动画效果。(很奇怪)

阅读 5.3k
3 个回答

貌似只有webkit和ie支持吧。
解决方法:

  1. 把图片写在html里,使用定位然后top控制显示图片显示位置。附效果demo

  2. 详见知乎里的同一问题解决办法

火狐不支持这2个属性哦,只支持background-position

在css里面写hover就可以了。
hover的时候background-position改变,同时给个transition就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题