javascript - JS。非标准覆盖表

标签 javascript jquery html css

我有表格的视觉选择,可以为鼠标悬停的表格单元格及其行和列着色,就像一些十字线一样。

参见 JSFiddle:

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

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

我在想,怎么做。

目前我有一个想法: 为行(你看到它是蓝色的)、列和目标单元格创建绝对 div。 之后,将这些元素一起移动到动画功能中,从 x 点到 y 点。

是否有更简单的方法/想法来做到这一点?

我想通过 JavaScript 得到的结果的类似例子你可以在这里下载(GIF 图片,大(2 mb)):
download and see 抱歉,我不能把它变小。

最佳答案

给你:http://jsfiddle.net/andunai/0ardb3u0/41/

(我已经注释掉你所有的代码作为引用,新代码在 fiddle 的底部。)

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

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

transition: all 0.1s linear

...所以当我们做 $(...).css(...) 改变它的 width, height , topbottom, 属性从旧值平滑过渡到新值。 您仍然可以使用 jQuery$.animate() 动画方法,但 CSS 过渡基本上更快更流畅。

另请注意,我使用 $(...).outerWidth(...) 而不是 width(...) 来正确调整单元格大小.

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

pointer-events: none;

这非常重要,因为它使鼠标事件的十字准线 div 变得“透明”,这意味着实际的点击将“穿过”它们并被适当的 td 元素捕获。

尽情享受吧!

关于javascript - JS。非标准覆盖表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27964617/

相关文章:

javascript - 指令中的 AngularJS : Watch element. html()

javascript - 在路由更改不起作用后取消angularjs超时

javascript - 使表格在上一个表格完成后显示

javascript - 当 field.value 为空时禁用输入按钮

html - CSS设置两列静态

javascript - 解析错误消息 "react-dom.development.js:4091 Uncaught TypeError: onItemSelect is not a function"

javascript - jQuery.keypad 性能问题

jQuery 使用正则表达式进行选择并替换链接

javascript - 有没有好的 "email this"解决方案?

javascript - jQuery 自动完成 - 没有任何样式?