ドロワーメニューのように、右側からスライドインで表示されるモーダルを作っています。
ひとまずモーダルを表示させるところまでは出来たのですが、右側からのスライドインがどうしても上手くいかず…。ご教授いただけると嬉しいです。
画面外にあったものをスライドのアニメーションで表示させるような想定です。
<a class="ModalOpen" data-target="modal-content-01"><img src="/img/.png" alt=""></a> <section id="modal-content-01" class="modal-content"> <a class="ModalClose"><img src="/img/.png" alt="閉じるボタン"></a> <p>モーダルの中身</p> </section>
.modal-content { width: 100%; height: 100%; display: none; position: fixed; top: 0; right: -100%; padding-top: 10%; padding-bottom: 10%; padding-left: 7%; padding-right: 7%; z-index: 999; overflow: auto; } .lock{ overflow: hidden; } .SlideIn { display: block; right: 0; }
$('.ModalOpen').click(function(){ // bodyを固定(overflow:hiddenにする) $('body').addClass('lock'); // モーダルコンテンツのIDを取得 var modal = '#' + $(this).attr('data-target'); // モーダルコンテンツスライドイン $(modal).addClass('SlideIn'); }); $('.ModalClose').off().click(function(){ $(modal).removeClass('SlideIn'); $('body').removeClass('lock'); //モーダルコンテンツを囲む要素を削除 }); //リサイズしたら表示位置を再取得 $(window).on('resize', function(){ modalResize(); });
「.SlideIn」でモーダル要素になる「.modal-content」をスライド表示させるようにしたいと思っています。
モーダルが表示されている際、モーダルの背景の要素を固定するために「.lock」をつけています。
また、デバイス幅100%表示の想定です。
何卒、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー