jquery - 使用 jQuery 动画回到原始位置

标签 jquery jquery-animate positioning

我想要将用户单击的图像动画化到左上角 100x100,然后我希望它返回到动画开始的原始位置,但是使用这段代码,它会不断滑动一些像素到顶部,左边。我无法弄清楚是什么原因导致了这个问题。如何让它回到原来的位置?

var posLeft;
var posTop;

$(this).children("img").click(function() {


        goToTopLeft($(this));

        $.each($(this).parent().children("img"), function() {

            $(this).css("z-index","0");

        });

        goToFrontFromTopLeft($(this));

        $(this).css("z-index", "1");



    });

function goToTopLeft(img) {
        posLeft = img.position().left;
        posTop = img.position().top;
        img.animate({ top: '-=100', left: '-=100', height: 'toggle' }, 500);
    }

    function goToFrontFromTopLeft(img) {
        img.animate({ top: posTop, left: posLeft, height: 'toggle' }, 500);
    }

最佳答案

虽然我从与您不同的位置开始制作动画,但以下代码应该让您了解如何执行您想要执行的操作:

$('img').click(
    function(){
        var offset = $(this).offset();
        var originLeft = offset.left;
        var originTop = offset.top;
        $(this).animate(
            {
                'top' : '400px',
                'left': '200px'
            }, 1500, function() {
                $(this).animate({
                    'top': originTop,
                    'left' : originLeft
            }, 1500)
                    });

    });

Link to JS Fiddle Demo .

我会注意到,在我的第一次尝试中,我自己的动画也出现了短暂的闪烁,这似乎是由于容器元素具有填充或边距,这就是 CSS 的原因该页面上的 Pane 包含以下内容:

body, div, iframe {
    padding: 0;
    margin: 0;
}

这似乎已经解决了短暂的“闪烁”问题,而且我怀疑,很可能会解决您自己的问题。但如果没有看到现场演示,除了猜测之外,很难知道问题是什么。如果这没有帮助,我当然建议发布 JS Fiddle ,或JS Bin 、演示,以便我们可以看到您正在使用的内容。

关于jquery - 使用 jQuery 动画回到原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4575526/

相关文章:

javascript - 尝试使用 jQuery 制作幻灯片但无法正常工作

jquery - 调用函数时,jQuery在IE7上崩溃

JQuery Animate Jumpy 仅在 Safari 中

css - 为什么这个 div 在另外两个嵌套的 div 之间? z-index 相关

css - 奇怪的 CSS 问题?使用 float 属性定位 div 元素

javascript - 如果元素的索引超过 3,选择元素的最佳方法是什么?

android - keyup 不适用于 Android 上的 Chrome

jquery - 使用jquery从左向右平滑地滑动元素?

javascript - Jquery平滑滚动: Cannot read property 'top' of undefined

jquery - 如何垂直交错这些 HTML 元素?