【发布时间】:2015-09-15 11:19:41
【问题描述】:
li 元素是否可以从这里开始动画:
http://jsfiddle.net/8XM3q/light/
在使用显示/隐藏功能而不是删除时进行动画处理? 当我将“删除”更改为“隐藏”时,元素没有移动:http://jsfiddle.net/8XM3q/90/
我想将此功能用于我的内容过滤动画 - 这就是为什么我必须将“删除”替换为“隐藏/显示”。
我不擅长 JS,但我认为它会计算所有元素,即使它们是隐藏的:
function createListStyles(rulePattern, rows, cols) {
var rules = [], index = 0;
for (var rowIndex = 0; rowIndex < rows; rowIndex++) {
for (var colIndex = 0; colIndex < cols; colIndex++) {
var x = (colIndex * 100) + "%",
y = (rowIndex * 100) + "%",
transforms = "{ -webkit-transform: translate3d(" + x + ", " + y + ", 0); transform: translate3d(" + x + ", " + y + ", 0); }";
rules.push(rulePattern.replace("{0}", ++index) + transforms);
}
}
var headElem = document.getElementsByTagName("head")[0],
styleElem = $("<style>").attr("type", "text/css").appendTo(headElem)[0];
if (styleElem.styleSheet) {
styleElem.styleSheet.cssText = rules.join("\n");
} else {
styleElem.textContent = rules.join("\n");
}
所以我的问题是如何调整这部分代码以仅计算“显示”(显示)元素?
【问题讨论】:
-
这里的问题是CSS选择器
".items li:nth-child({0})"不关心元素是否隐藏。只要元素仍然存在,nth-child就会计算它。统计元素个数是这段代码定位的核心。 -
所以不可能应用/更改该代码来隐藏/显示功能?
-
我看不出有任何方法可以这样做(仅使用 CSS 规则,使用 nth-child 和 translate3d)。请问,
float没有解决你的问题?
标签: javascript animation html-lists show-hide removeclass