jQueryUI 对表列的影响

标签 jquery css jquery-ui

尝试使用 jQueryUI 将表格列滑出 View ,然后再返回。遗憾的是,它似乎没有保留正确的列宽和位置,因此该列最终出现在错误的位置。

我遇到的问题的提炼版本在 http://jsfiddle.net/Z76xE/6/ .我已经看到了许多不受欢迎的行为的不同变体,但是这里指向的简单案例只会在扩展操作上感到困惑:它首先将列扩展到大于 CSS 修复它的 150px,然后在最后将其左边缘折断,使该列再次变为 150 像素,在表格的左侧留下空白区域。

在无休止的玩这个和跟踪 JavaScript 的过程中,我意识到 jQuery 获得的列宽与声明的 CSS 不同。所以我在 [not] 告诉 jQuery/jQueryUI 更新它对列宽的理解时做错了。我只是不知道在哪里!

感谢您的任何想法。

最佳答案

如果您在打开 DOM 检查器的情况下观看动画,您会看到 <td>被包裹在 <div> 中那<div>得到动画。然而,这:

<tr>
    <div>
        <td></td>
    </div>
</tr>

是无效的 HTML,所以谁知道浏览器会用它做什么奇怪而美妙的事情。我们确实知道它会做一件奇怪的事情:它会离开 <td>当您将其设置为打开动画时在错误的位置。

摆弄表格元素的定位和显示有点像噩梦,所以最好避免它。如果您将 HTML 更改为:

<td>
    <div id="NavColumn">
        I am the left-side column
    </div>
</td>

那么你的运气会更好:http://jsfiddle.net/ambiguous/VUvCw/

您必须稍微调整 CSS 以获得您想要的视觉布局,但该结构应该让您的动画得到整理。

关于jQueryUI 对表列的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527256/

相关文章:

javascript - Css 逐像素变换 Y

html - 我需要用 css 将图像居中到 div

jquery - jQuery UI 日期选择器的自动宽度在 IE7 中不起作用

jquery - 动画在 IE 中不起作用,但在 Firefox 中起作用

html - 使用 flex order 属性为桌面和移动 View 重新排列元素

jquery - jQuery UI Accordion 内部的 nicedit 文本区域宽度无法正常工作

jQuery ButtonSet 刷新不起作用

javascript - masonry 并没有填补小的空白

java - 关于Struts 2框架中的HTML标签

鼠标悬停时的 Jquery 动画并在鼠标移出时停止