z-index不像我预期的那样在离子载玻片内工作

时间:2016-07-31 07:23:57

标签: css ionic-framework slider z-index swiper

我有两个使用ion-slides组件的滑块,我创建了一个带有两个按钮(导航按钮)的页脚。直到没事。

但是......我在其中一个滑块中有一个表单,所以当我关注input text元素时,virtual keyboard会打开并向上移动页脚,将其放在表单前面

我知道hide-on-keyboard-open类,但这不是中级的(您可以看到页脚如何放置在表单前面几秒钟),所以我想到了使用{{1 }}

因此,当z-index向上移动时,它会隐藏在表单下面。但我无法让它发挥作用。

也许有人可以帮我解决这个问题?

我的意图是绿色块在联系时隐藏在蓝色块下面...我已经创建了一个codepen来显示此问题:https://codepen.io/anon/pen/QEBxRK?editors=1111

(由于您无法在台式计算机上打开虚拟键盘,因此可以调整页面高度以查看footer不起作用)

问候!

1 个答案:

答案 0 :(得分:1)

z-index需要设置为.footerTest的兄弟<ion-slides options="sliderOptions" slider="slider">元素。

一个选项是移动幻灯片中的.footerTest

下面的示例显示z-index如何应用于元素及其子元素。

Src:https://developer.mozilla.org/en/docs/Web/CSS/z-index

&#13;
&#13;
.dashed-box { 
  position: relative;
  z-index: 3;
  border: dashed;
  height: 8em;
  margin-bottom: 1em;
  margin-top: 2em;
}
.gold-box { 
  position: absolute;
  z-index: 2;
  background: gold;
  width: 65%;
  left: 60px;
  height: 7em;
  top: 3em;
}
.green-box { 
  position: absolute;
  z-index: 1;
  background: lightgreen;
  width: 20%;
  left: 65%;
  top: -25px;
  height: 8em;
  opacity: 0.9;
}
.red-box { 
  position: relative;
  z-index: 0;
  background: red;
  height: 8em;
  margin-bottom: 1em;
  margin-top: -4em;
  text-align: right;
}
&#13;
<div class="dashed-box">Dashed box
  <span class="gold-box">Gold box</span>
  <span class="green-box">Green box</span>
</div>
<div class="red-box">Red box</div>
&#13;
&#13;
&#13;

但是,如果您省略z-index上的dashed-box并使用负值,就像在蓝色框中一样,蓝色就在它们之下。

&#13;
&#13;
.dashed-box { 
  position: relative;
  /* z-index: 3; */
  border: dashed;
  height: 8em;
  margin-bottom: 1em;
  margin-top: 2em;
}
.gold-box { 
  position: absolute;
  z-index: 2;
  background: gold;
  width: 65%;
  left: 60px;
  height: 7em;
  top: 3em;
}
.green-box { 
  position: absolute;
  z-index: 1;
  background: lightgreen;
  width: 20%;
  left: 65%;
  top: -25px;
  height: 8em;
  opacity: 0.9;
}
.blue-box { 
  position: absolute;
  z-index: -1;
  background: lightblue;
  width: 20%;
  left: 25%;
  top: -25px;
  height: 18em;
  opacity: 0.9;
}
.red-box { 
  position: relative;
  z-index: 0;
  background: red;
  height: 8em;
  margin-bottom: 1em;
  margin-top: -4em;
  text-align: right;
}
&#13;
<div class="dashed-box">Dashed box
  <span class="gold-box">Gold box</span>
  <span class="green-box">Green box</span>
  <span class="blue-box">Blue box</span>
</div>
<div class="red-box">Red box</div>
&#13;
&#13;
&#13;