2

我正在尝试使用以下示例实现照片缩放效果: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 错误:Uncaught TypeError: Cannot use 'in' operator to search'display' in undefined 有人可以给我一个提示来解决这个问题吗?

提前致谢。

4

1 回答 1

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*/
}
于 2013-02-05T17:19:08.130 回答