現在サイドメニューを指定位置で固定してフッターに来たら止める処理を行っているのですが、
動的コンテンツが入るとどうしてもフッターの下に埋もれてしまいます。
<実現できていること>
サイドバーの固定・停止・解除まではできていますが、動的コンテンツが入り込むとスクロールの最後で埋もれてしまいます。
<実現したいこと>
.box_sidemenuの高さ内に.scrollboxを収まらせたい
▽追記
.scrollboxはヘッダーが頭の位置にくると position:fixed;が付与されます。
調べても分かりませんでしたので、質問させていただきました。
もしよろしければ教えて頂ければと思います。
▽現状のソース
※ヘッダーも固定のため高さ分(112px)ずらしています。
jquery
1/* サブメニュー固定 */ 2$(document).ready(function(){ 3$(function(){ 4 var target = $(".scrollbox");//固定する要素名 5 var footer = $(".bunner_area")//ここでストップさせる 6 var targetHeight = target.outerHeight(true); 7 var targetTop = target.offset().top; 8 9 $(window).scroll(function(){ 10 var scrollTop = $(this).scrollTop(); 11 if(scrollTop + 112 > targetTop){ 12 var footerTop = footer.offset().top; //常に計算 13 14 if(scrollTop + targetHeight + 112 > footerTop){ 15 customTopPosition = footerTop - (scrollTop + targetHeight) 16 target.css({position: "fixed", top: customTopPosition + "px"}); 17 }else{ 18 target.css({position: "fixed", top: "112px"}); 19 } 20 }else{ 21 target.css({position: "static", top: "auto"}); 22 } 23 }); 24}); 25 26 27}); 28}; 29}); 30 31 32//動的コンテンツ展開用 33/* 開閉メニュー */ 34 35jQuery(function($){ 36 $('.close_menu').hide(); 37 $('#hot_spring').click(function () { 38 $(this).next('.close_menu').slideToggle(); 39 $(this).toggleClass('open'); 40 }); 41}); 42 43 44jQuery(function($){ 45 $('.close_menu2').hide(); 46 $('#genre').click(function () { 47 $(this).next('.close_menu2').slideToggle(); 48 $(this).toggleClass('open'); 49 }); 50}); 51 52
※close_menuが動的な部分です。
html
1<div class="box"> 2 <div class="box_sidemenu"> 3 <div class="next_search_area scrollbox"> 4 <form action="" method="POST"> 5 <div class="top_menu"> 6 <p class="title01"><span>情報検索</span></p> 7 <ul class="menu"> 8 <li class="">月表示</a></li> 9 <li><a href="">全ての情報表示</a></li> 10 </ul> 11 </div> 12 13 <div class="search_text_area"> 14 <input class="search" name="keyword" placeholder="キーワード検索" type="search"> 15 <input type="submit" name="submit" value="" class="search_submit"> 16 </div> 17 18 <p class="title02 open" id="hot_spring">エリア検索</p> 19 <div class="close_menu" style="display: block;"> 20 <p><img src="/images/common/submenu_map.png" alt=""></p> 21 <div class="genre_check"> 22 <input name="map1" type="checkbox" id="map1"> 23 <label for="map1">エリア</label><br> 24 <input name="map2" type="checkbox" id="map2"> 25 <label for="map2">エリア</label><br> 26 <input name="map3" type="checkbox" id="map3"> 27 <label for="map3">エリア</label><br> 28 <input name="map4" type="checkbox" id="map4"> 29 <label for="map4">エリア</label><br> 30 <input name="map5" type="checkbox" id="map5"> 31 <label for="map5">エリア</label><br> 32 <input name="map9" type="checkbox" id="map9"> 33 <label for="map9">エリア</label><br> 34 </div> 35 36 <p class="title04">開催期間</p> 37 <div class="held"> 38 <div class="held_box"> 39 <div class="search_text_area"> 40 <input class="search" name="search_s_date" type="text" value=""> 41 <input name="submit" class="search_submit" type="submit"> 42 </div> 43 </div> 44 45 <div class="held_box"> 46 <div class="search_text_area"> 47 <input class="search" name="search_e_date" type="text" value=""> 48 <input name="submit" class="search_submit" type="submit"> 49 </div> 50 </div> 51 </div> 52 </div><!-- .close_menu_end --> 53 54 <p class="title03" id="genre">ジャンル検索</p> 55 <div class="close_menu2" style="display: none;"> 56 <div class="genre_check" id="genre_search"> 57 <input name="genre1" type="checkbox" id="genre1"> 58 <label for="genre1">ジャンル</label> 59 <input name="genre2" type="checkbox" id="genre2"> 60 <label for="genre2">ジャンル</label><br> 61 <input name="genre3" type="checkbox" id="genre3"> 62 <label for="genre3">ジャンル</label> 63 <input name="genre4" type="checkbox" id="genre4"> 64 <label for="genre4">ジャンル</label><br> 65 <input name="genre5" type="checkbox" id="genre5"> 66 <label for="genre5">ジャンル</label> 67 <input name="genre6" type="checkbox" id="genre6"> 68 <label for="genre6">ジャンル</label><br> 69 <input name="genre7" type="checkbox" id="genre7"> 70 <label for="genre7">ジャンル</label> 71 <input name="genre10" type="checkbox" id="genre10"> 72 <label for="genre10">そのジャンル</label><br> 73 </div> 74 </div><!-- .close_menu2_end --> 75 <ul class="btn_area"> 76 <li><input type="submit" value="検索"></li> 77 <li><input type="reset" value="クリア"></li> 78 </ul> 79 </form> 80 </div> 81 </div> 82 83 <div class="box_main"> 84 メインコンテンツ部分 85 </div><!-- .box_main_end --> 86 </div> 87 88<!-- ここでストップ --> 89<div class="bunner_area"> 90 <div class="container"> 91 92 </div> 93 </div>
css
1.box { 2 width: 100%; 3 -js-display: flex; 4 display: flex; 5 flex-wrap: wrap; 6 justify-content: space-between; 7} 8 9.box_sidemenu { 10 width: 27%; 11 margin-right: 3%; 12} 13 14.scrollbox { 15 width: 290px; 16} 17 18.box_main { 19 width: 70%; 20 padding: 10px; 21} 22 23.bunner_area { 24 width: 100%; 25 padding: 20px; 26 position: relative; 27 z-index: 9; 28} 29
もし足りない情報などがありましたらご教授頂ければと思います。
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。