【发布时间】:2012-08-05 22:29:53
【问题描述】:
我能够编写一个 JavaScript 轮播,并认为使用带有 nth-child 选择器的 CSS 转换可能会更紧凑:
img {
transition: all 1s linear; /* or corresponding vendor prefixes */
position:absolute;
}
img:nth-child(1) {
top: 0%;
left: 0%;
}
img:nth-child(2) {
top: 0%;
left: 50%;
}
/*and so on...*/
然后通过附加容器的第一个子项或添加容器的最后一个子项来旋转项目:
parent.appendChild(parent.children[0]);
这种方法适用于除附加元素之外的所有元素。它被完全移除然后重新连接,所以它最终在正确的位置,但不使用过渡效果。有没有办法在 DOM 中重新定位元素时使用 CSS 过渡?
jsFiddle Demo - 单击文档以前进图像。
【问题讨论】:
-
我没有足够的信心回答,但我真的不这么认为。 CSS 过渡在一个平面上运行,独立于 DOM 元素的组织。您可以使用 Javascript 为追加设置动画,或者更好的是,切换到类(box-1、box-2、box-3、box-4)而不是 nth-child,并使用 Javascript 在单击时增加每个类或重置为 1,如果之前在 4.
标签: javascript css dom dom-manipulation css-transitions