如果另一个元素移动到左上角,则从左到右移动元素

时间:2015-11-22 01:15:43

标签: jquery css

我有一个元素位于父元素的左上角。如果另一个元素将移动到此元素上,则应将其移动到右上角。如果它移出“目标”区域,则应将其设置回左上角。

所以这就是我所做的:

var css = (top <= 60 && left <= 120) ? { left: 'initial', right: '10px' } : { right: 'initial', left: '10px' };

$target.fadeOut(100, function() {
    $target.css(css).fadeIn(100);
});

如果元素移动到左上角(顶部&lt; = 60且左&lt; = 120),则将设置新的css属性。 'old'元素逐渐消失,'new'元素渐渐消失。

我的问题是,此代码将用于元素的每个移动。这就是为什么目标id在元素移动时闪烁的原因。如果位置发生变化,我需要这样做。因此,只有当元素在左上方区域移动时,才会出现褪色 - 而不是(就像现在一样)每次移动。

我的解决方案

if (top <= 60 && left <= 120) {
    changed  = (position == 'left') ? true : false;
    position = 'right';
    css      = { left: 'initial', right: '10px' };
}
else {
    changed  = (position == 'right') ? true : false;
    position = 'left';
    css      = { right: 'initial', left: '10px' };
}

if (changed) {
    $target.fadeOut(100, function() {
        $target.css(css).fadeIn(100);
    });
}

也许这可以优化......

0 个答案:

没有答案