前提・実現したいこと
カルーセル内のコンテンツをモーダルで全画面表示させたい。
<ul>内のlistを-webkit-overflow-scrolling:touch;で 簡易カルーセルにしています。list内にはモーダルを出現させる為のトリガーと
モーダルに表示するコンテンツが内包されています。
モーダル表示するコンテンツは
display:none;にしておいて
jQueryでfadeInさせています。
発生している問題・エラーメッセージ
windows:chrome、IE、Edge、firefox
android:chrome
では問題なく意図通りの動きになりましたが
iOS:safari、chrome
で動作させた際、
調べてみると
https://github.com/scottjehl/Device-Bugs/issues/14
にoverflow-scrolling:touch;を指定していると
z-indexが無視されるようだという事が書かれていましたが
これを解消する方法がわかりません。
該当のソースコード
html
1<ul> 2 <li> 3 <label>button1</label> 4 <div><p>モーダル表示させるコンテンツ1</p></div> 5 </li> 6 <li> 7 <label>button2</label> 8 <div><p>モーダル表示させるコンテンツ2</p></div> 9 </li> 10 <li> 11 <label>button3</label> 12 <div><p>モーダル表示させるコンテンツ3</p></div> 13 </li> 14</ul>
css
1ul{ 2 width:100%; 3 overflow-x:scroll; 4 -webkit-overflow-scrolling:touch; 5 overflow-scrolling:touch; 6 display:flex; 7 list-style:none; 8} 9li{ 10 width:250px; 11 min-width:250px; 12 padding:20px; 13 box-sizing:border-box; 14 border:1px solid #CCC; 15} 16label{ 17 cursor:pointer; 18} 19label:after{ 20 content:none; 21} 22div{ 23 display:none; 24 position:fixed; 25 top:0;left:0;right:0;bottom:0; 26 z-index:100; 27 background-color:rgba(0, 0, 0, .70); 28 padding:30px; 29} 30p{ 31 background-color: #FFF; 32 padding:20px; 33}
jQuery
1$(function() { 2 var $overlay = $('div'); 3 $('label').on('click', function() { 4 $(this).next($overlay).fadeIn(300); 5 }); 6}); 7```※jQueryのver.は3.3.1です。 8### 試したこと 9 overflow-x:scroll; 10または 11 -webkit-overflow-scrolling:touch; 12を切ると意図通りの動きになりますが 13この2つを指定したままでモーダルを発動させたいのですが 14上手くいきません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。