使用Jquery Animate调整图像大小

前端之家收集整理的这篇文章主要介绍了使用Jquery Animate调整图像大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可能从中心向外而不是从左到右(从上到下)制作动画?我试图实现的效果类似于灯箱,当您单击图像并向外扩展时.

谢谢!

解决方法

@ Aron的解决方案没问题,但它有一些限制:你不能在文档流程中有一个图像.

我的解决方案实际上创建了一个绝对定位的图像克隆,并将其显示在原始图像的顶部.它使用.offset()计算原始图像的绝对位置.

方法的缺点是,如果文档流程发生更改(例如调整客户端窗口大小时),则绝对定位的元素将保留在旧位置.如果您可以使用此方法,则取决于页面的布局.

单击我的演示中的图像以切换效果. http://jsfiddle.net/Xhchp/3/

HTML:

<p>Some random text.</p>
<p>More blah. <img id="someImage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Deletion_icon.svg/600px-Deletion_icon.svg.png"/> More blah.</p>
<p>Some random text.</p>

CSS:

#someImage { width:32px; height:32px; }

JavaScript的:

function ZoomIn(){
    var p = $(this).offset();
    var w = $(this).width();
    var h = $(this).height();
    var $clone = $(this).clone();
    $clone.css({
        position: "absolute",left: p.left + "px",top: p.top + "px","z-index": 2
    }).appendTo('body');
    $clone.data("origWidth",w);
    $clone.data("origHeight",h);
    $clone.data("origTop",p.top);
    $clone.data("origLeft",p.left);
    $clone.animate({
        top: "-=" + Math.floor(h * 0.5),left: "-=" + Math.floor(w * 0.5),width: Math.floor(w * 2),height: Math.floor(h * 2)
    },function(){
    });
    $clone.click(ZoomOut);
}

function ZoomOut(){
    var w = $(this).data("origWidth");
    var h = $(this).data("origHeight");
    var t = $(this).data("origTop");
    var l = $(this).data("origLeft");
    $(this).animate({
        top: t,left: l,width: w,height: h
    },function(){
        $(this).remove();
    });
}

$(function(){
    $('img').click(ZoomIn);
});

猜你在找的jQuery相关文章