将一个td移动到另一个td的动画
Animate moving of a td to another td
我使用jquery来更改表的td内容。我想将一个td的内容"移动"到另一个td,替换现有内容。
例如:
|A|B|
|C|D|
现在我"将D的内容移动到A",得到:
|D|B|
|C| |
如何设置此过渡的动画?淡出/淡入很容易,但如何在视觉上将D移动到A?
非常感谢
更新:我需要用程序来完成,所以用户拖放不是一个选项。
您需要在<div>
中的td中包装您的内容,并获得A和D单元格绝对位置$(element).offset();
,然后用.animate()
移动它。之后,您需要删除隐藏的div,并在新单元格中移动div替换。
$(function(){
var posF = $('#first').offset();
var posS = $('#second').offset();
$('#second').css({
position: 'absolute',
top: posS.top,
left: posS.left
});
$('#first').fadeOut(function(){
$(this).remove();
});
$('#second').animate({
top: posF.top,
left: posF.left
}, 1000);
});
http://jsfiddle.net/9wa3vyh2/
这里有一种方法:
- 创建克隆
DIV
并附加TD
的内容 - 将克隆放置在
TD
D的上方 - 将克隆设置为A位置的动画
- 清空A,附加克隆内容并删除克隆
类似以下内容:(演示:http://jsfiddle.net/fvLr6z5s/)
var $d = $('.tdd')
var $a = $('.tda')
var offsetD = $d.offset()
var offsetA = $a.offset()
var $clone = $('<div>')
.addClass('clone')
.append($d.contents())
.css(offsetD)
.appendTo('body')
$clone.animate(offsetA, function() {
$a.empty().append($clone.contents())
$clone.remove()
})
您应该移动<td>
标记我给你做了一个jsfiddle
这是我的代码:
<table>
<tr>
<td id="moveto">A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td id="movefrom">D</td>
</tr>
</table>
<input type='button' id='change'value='change'>
Js
$(function() {
$('#change').click(function(){
$( "#movefrom" ).animate({
left: "-=16", //you should change this numbers based on your table size
top: "-=22",
}, 5000, function() {
// Animation complete.
});
});
});
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 正在获取生成的PHP td值
- jquery:将TR移动到新移动的TD
- 一些TD移动到新线路后多个TD
- 使用 JavaScript 移动 html td 元素
- HTML 表在 TD 之间移动鼠标时触发鼠标输出
- 将一个td移动到另一个td的动画
- 如何在html中使TR/TD不可移动
- 移动& lt; td>当其他
已被移除 - 将第一个Tr移动到头部,并使用jquery将td替换为头部
- 如何跨边界将td内容移动到同一行的另一个td
- jQuery移动按钮在表td内看起来很旧,在button()/refresh后,旧按钮在新按钮内