我有桌子的视觉选择,它将鼠标的表格单元及其行和列着色,就像一些交叉。
见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
对不起,我不能让它变小。
答案 0 :(得分:2)
在这里:http://jsfiddle.net/andunai/0ardb3u0/41/
(我已将您的所有代码注释掉作为参考,新代码位于小提琴的底部。)
你是对的:这里的方法是实际创建2个绝对div
并根据悬停的单元移动它们。
对于动画,我们可以在这里使用CSS transition
属性:
transition: all 0.1s linear
...因此,当我们$(...).css(...)
更改其width
,height
,top
和bottom
时,属性会从旧值顺利转换为新的一个。
您仍然可以使用jQuery
$.animate()
方法制作动画,但CSS过渡基本上更快更顺畅。
另请注意,我已使用$(...).outerWidth(...)
代替width(...)
来正确调整单元格大小。
还有一件事:注意这个CSS行 -
pointer-events: none;
这非常重要,因为它使十字准线透明'对于鼠标事件,意味着实际点击将通过"通过"它们将由适当的td
元素捕获。
享受!