1

我有一个页脚,我希望用户在他们滚动到我的页面底部之前不可见。我正在尝试使用 CSS 来完成这一切,并且只使用 JS 来应用将执行 CSS 转换的类,但问题是页脚中有一些锚点<a></a>,所以我最初使用不透明度的方法允许用户仍然悬停在链接并在我希望他们之前单击。

这导致我添加了 jQuery$('.footer').hide()$('.footer').show()就位,以便 DOM 仅在我想要的时候出现。但是,这样做似乎破坏了应该发生的 CSS 过渡(现在不是从 0 不透明度到 0.8 的动画,而是立即进行)。

是否有任何人知道的解决方案可以让我完全隐藏 DOM,但让我在它可用时立即在其上使用 CSS 转换$.show()

这可以在DaemonDeveloper.com上看到

只需向下导航到“为什么”部分并观察.. 第一个 CSS 转换被破坏,但显示按钮的第二个工作正常。

4

2 回答 2

2

不幸的是,您无法转换已隐藏的元素display: none(这是 jQueryhide()所做的。

解决此问题的最佳方法是隐藏项目visibility: hidden并将 a 声明height为零。这样,您仍然可以opacity通过操作类来应用过渡以获得所需的效果。

CSS

.hide {
  visibility: hidden;
  height:0;
  opacity:0;
  transition: opacity .2s ease;
}

.show {
  visibility:visible;
  height:auto;
  opacity:1;
}
于 2013-06-27T16:06:00.267 回答
0

jQuery 提供了诸如fadeIn和之类的方法fadeOut。还有animate方法。

于 2013-06-27T16:05:05.913 回答