这个奇怪的错误已经连续两天困扰我了!
我有 5 个视图,每个视图都包含一个滚动视图,并在单击它们时在它们上设置 z-index。出于某种奇怪的原因,z-index 为 3 的元素总是显示在 z-index 为 4 的元素之上,除非它是倒数第二个元素被点击。到底是怎么回事?!
请查看下面的代码。我用的是合金。显然不是生产代码,但我意识到它可能不是我的代码,所以我使用以下代码对其进行了测试。非常感谢你的帮助!
合金标记:
<!-- index.xml -->
<Alloy>
<Window id="container">
<View id="v0" class="test" top="0">
<ScrollView borderColor="green">
<Label/>
</ScrollView>
</View>
<View id="v1" class="test" top="40">
<ScrollView borderColor="blue">
<Label/>
</ScrollView>
</View>
<View id="v2" class="test" top="80">
<ScrollView borderColor="red">
<Label/>
</ScrollView>
</View>
<View id="v3" class="test" top="120">
<ScrollView borderColor="purple">
<Label/>
</ScrollView>
</View>
<View id="v4" class="test" top="160">
<ScrollView borderColor="teal">
<Label/>
</ScrollView>
</View>
</Window>
</Alloy>
这是主要脚本:
// index.js
zs = [];
changeOrder = function(){
for(var i=0; i<5; i++){
z = zs[i];
v = $["v#{i}"];
// Set the supposedly correct order of view stack
v.setZIndex(z);
// Display the order for debugging
v.children[0].children[0].setText(z);
};
$.v0.addEventListener("click", function(){
zs = [5,4,3,0,1];
changeOrder();
});
$.v1.addEventListener("click", function(){
zs = [1,5,4,3,0];
changeOrder();
});
$.v2.addEventListener("click", function(){
zs = [0,1,5,4,3];
changeOrder();
});
$.v3.addEventListener("click", function(){
zs = [3,0,1,5,4];
changeOrder();
});
$.v4.addEventListener("click", function(){
zs = [4,3,0,1,5];
changeOrder();
});
$.container.open()
钛手机 3.0.22 合金 1.0.0 iOS 模拟器 6.1 OSX 10.8