【问题标题】:jQuery Quicksand: CSS applied after JS load causes jerky behaviourjQuery Quicksand:在 JS 加载后应用 CSS 会导致生涩的行为
【发布时间】:2011-04-20 11:55:20
【问题描述】:

我正在使用 jQuery Quicksand 插件按日期过滤列表。

我已经让它像给出的示例一样工作,但是,过滤器应用于<li> 加载为block 的项目,然后一旦所有项目都加载了float:left CSS 就会应用。让整个过程看起来有点跳跃和混乱。

我想不通的是为什么流沙网站上的示例没有发生这种情况 - 列表消失然后顺利重新出现。我仔细查看了 CSS 并尝试了 duration 和 easing 的许多变体,但同样的事情发生了。

【问题讨论】:

    标签: jquery quicksand


    【解决方案1】:

    问题是 CSS 被应用于 jQuery 所作用的 ID。因此,每次有任何 jQ 操作时,都会重新加载样式。通过同时应用一个由 CSS 作用的类,两者保持分离,因此立即应用了样式。

    即 <ul id="magazines"> jQ 作用于#magazines 和 CSS 也作用于 #magazines 导致加载延迟。

    <ul id="magazines" class="mag-list">与 jQ 作用于 #magazines 和 CSS 作用于 .mag-list 是要走的路。

    【讨论】:

      【解决方案2】:

      答案是,你的 li 的 css 应该总是 float:left。这应该被硬编码到您的样式表中。你应该用JS隐藏ul,创建加载内容的li,然后显示ul。

      实际上所有的css都应该硬编码到样式表中,隐藏ul,加载lis,显示ul。

      这样做可以更容易地设置渐进增强,没有 js 的用户可以访问相同的内容,但没有动画。

      首先,UL 不会被隐藏,因为这是使用 js 完成的。因此,您所要做的就是将单选按钮作为非 js 用户的锚点,当他们单击它时,会将查询字符串添加到通过 get 方法访问的 url 上,您可能可以将其用于现有的 ajax 后端。

      然后您将链接交换为 js 中的单选按钮。

      【讨论】:

      • 浮动和所有样式都被硬编码到我的样式表中。我理解你所说的关于非 js 浏览器的向后兼容性。但在这种情况下,它将显示在一台我可以完全控制浏览环境的计算机上。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 2021-11-13
      相关资源
      最近更新 更多