【问题标题】:How to move td content to another td at the same row across borders如何将 td 内容跨界移动到同一行的另一个 td
【发布时间】:2018-07-20 16:32:50
【问题描述】:

我正在尝试编写一个动画来将一个 td 内容(它是 td 内的一个 div)推送到同一 tr 中的另一个 td(到行的末尾)跨越 tds 边界而不改变 td 的宽度.

有什么好办法吗? CSS / jQuery?

【问题讨论】:

  • 总有办法的!但是您必须先尝试一下并向我们展示您的代码,以便我们能够为您提供帮助!
  • 这是我的第一个问题,我还不能上传图片。
  • 把 div 从 td 中取出,将它放在 td 的顶部,大小相同并为其设置动画,然后在动画结束时,将 div 放入 td 中。或者我可能误解了这个问题。
  • 我有像球一样的 div,需要在同一行的 dts 上移动到桌子的另一边。表格行看起来像这样 Isal
  • 我一直用左边距推动 div,但是当它到达 td 的末尾时。它带有 td 边框,然后 td 宽度不断变化

标签: javascript jquery css html-table


【解决方案1】:

如果您想要的是动画(第一个 td 内容似乎“滑入”另一个带有动画的 td),我想出了这个(希望我的问题是正确的):

$div = $('td.first > div');
$div
    .css({position:'relative'})
    .animate({
        left:$('td.second').offset().left - $('td.first').offset().left
    }, {
        complete:function(){
            $div.appendTo('td.second');
            $div.css({position:'', left:''});
        }, 
        duration:1000
    });

那么它有什么作用呢?

  1. 将内容的位置设置为“相对”。这样,我们可以相对于它的原始位置移动它。

  2. 对其进行动画处理,使其准确地移动到它应该在 td.second 内的位置。我们用jquery的offset()函数计算单元格之间的距离

  3. 在动画结束时,我们实际上复制了第二个内部的 div。在此之前它是视觉上的,但实际上不是在另一个 td 中。

  4. 我们立即删除 position 和 left css 属性。如果没有这条线,div 将偏离其新位置。

这个我没有测试,可以优化一下。

【讨论】:

  • 我认为我的问题不太清楚。我不工作,还是谢谢
  • 你能更精确一点吗?从您对原始问题的 cmets 判断,我认为这就是您要寻找的。 margin-left 不起作用,因为它扩展了父级,这就是我在这里使用 position:relative 的原因。
  • 在这里检查:jsfiddle.net/zjudwumd 请注意,我更正了一个错字(位置:'relative';}(删除了分号)
猜你喜欢
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
相关资源
最近更新 更多