在document.ready上使用jQuery animate()

时间:2013-02-05 13:01:40

标签: jquery jquery-animate jquery-hover document-ready

我正在尝试使用此示例实现照片缩放效果:http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/。 但是,我需要在页面加载之后使用此效果,而不是在悬停。 所以我将hover()更改为ready():

    $(function() {
        $('#container img').ready(
            function(){
              var $this = $(this);
              $this.stop().animate({
                  'opacity':'1.0',
                  'height':'200px',
                  'top':'0px',
                  'left':'0px'
              });
           },
           function(){
             var $this = $(this);
             $this.stop().animate({
              'opacity':'0.5',
              'height':'500px',
              'top':'-66.5px',
              'left':'-150px'
             });
           }
        );
    });

然后我在Chrome调试器中遇到了JS错误: 未捕获的TypeError:无法使用'in'运算符在undefined中搜索'display' 有人可以给我一个解决这个问题的提示吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你有不同尺寸的图像,你可以这样做

$(document).ready( function(){
    img = $('#container img');
    imageWidth = img.outerWidth();
    imageHeight = img.outerHeight();
    centerX = (200 - imageWidth) / 2;
    centerY = (200 - imageHeight) /4;
    img.css({'opacity': 0.5, 'top': centerY, 'left': centerX})
       .animate({'opacity': 1,'height': '200px', 'top': 0, 'left': 0});
});

你需要在CSS中设置一些值:

#container {
      width: 200px;
      height: 200px;
      overflow: hidden; /*important*/
}
#container img{
    position: relative; /*important*/
}