JS。表格上的非标准叠加

时间:2015-01-15 13:33:19

标签: javascript jquery html5 css3

我有桌子的视觉选择,它将鼠标的表格单元及其行和列着色,就像一些交叉。

见JSFiddle:

http:// jsfiddle.net/arhangelsoft/0ardb3u0/40/

但我需要JS自动化和动画效果(如缓动),例如从0,0十字准线平滑移动到55格,然后同样平滑移动到22格等等。

我想,怎么做。

目前我有一个想法: 为行创建绝对div(u以蓝色显示),列和目标单元格。 在那之后,theese在从x点到y点的动画功能中一起元素化。

有更简单的方法/想法吗?

我希望通过JavaScript获得的结果的类似示例你可以在这里dewnload(GIF图片,大(2 mb)):
download and see 对不起,我不能让它变小。

1 个答案:

答案 0 :(得分:2)

在这里:http://jsfiddle.net/andunai/0ardb3u0/41/

(我已将您的所有代码注释掉作为参考,新代码位于小提琴的底部。)

你是对的:这里的方法是实际创建2个绝对div并根据悬停的单元移动它们。

对于动画,我们可以在这里使用CSS transition属性:

transition: all 0.1s linear

...因此,当我们$(...).css(...)更改其widthheighttopbottom时,属性会从旧值顺利转换为新的一个。 您仍然可以使用jQuery $.animate()方法制作动画,但CSS过渡基本上更快更顺畅。

另请注意,我已使用$(...).outerWidth(...)代替width(...)来正确调整单元格大小。

还有一件事:注意这个CSS行 -

pointer-events: none;

这非常重要,因为它使十字准线透明'对于鼠标事件,意味着实际点击将通过"通过"它们将由适当的td元素捕获。

享受!