如何使用jQuery操作图像 - 仅限水平

时间:2013-08-12 00:35:48

标签: javascript jquery css

我想在鼠标悬停时操纵图像,只有宽度会改变,但高度保持不变。我看到图像画布不适合实际图像,所以我再也看不到他的手了。我怎样才能伸展宽度?

http://jsfiddle.net/Z8knE/3/

div
{    
    background-image: url( http://t2.gstatic.com/images?q=tbn:ANd9GcQmloy1dlrNWhp8Y2u3lEKYEnLvJAqWVhggUIrA_QwRxjenmus-Ww);
    -webkit-background-size: 100%;
    -moz-background-size: 100%;
    -o-background-size: 100%;
    background-size: 100%;
    height:150px;
    width:150px;
}

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

JSFIDDLE

您不需要使用jQuery,只需使用纯CSS。

卸下:

background-size:100% 150px;

...并添加:

max-height:150px;

答案 1 :(得分:0)

技巧是background-size可以传递宽度和高度参数。将宽度设置为100%,将高度设置为您想要的静态高度。然后,当盒子展开时,图像会变得更宽,而不是更高。

http://jsfiddle.net/Z8knE/5/

div
{    
    background-image: url( http://t2.gstatic.com/images?q=tbn:ANd9GcQmloy1dlrNWhp8Y2u3lEKYEnLvJAqWVhggUIrA_QwRxjenmus-Ww);
    background-size: 100% 150px;
    height:150px;
    width:150px;
}

或者,如果你真的不想让盒子上的高度发生变化,就像你在原始小提琴中那样,你可以简单地从jQuery中删除该属性,如下所示:

编辑:此小提琴包含以下javascript http://jsfiddle.net/Z8knE/15/

$(document).ready(function(){
  $("div").mouseenter(function(){
      $("div").animate({width:"500px"},{duration: 1000, easing: 'easeOutBounce'});
  });
     $("div").mouseleave(function(){
         $("div").animate({width:"150px"},{duration: 1000, easing: 'easeOutBounce'});
  });
});