โค้ดตัวอย่างนี้ เป็นการประยุกต์จาก 2 เนื้อหาด้านล่างมาใช้งานอย่างง่าย
การปรับแต่งเพิ่มเติม สามารถทำได้ตามความต้องการ รูปแบบการทำงาน
คือ เมื่อเราเลื่อน scroll bar หน้าเพจลงมาถึงตำแหน่งที่เรากำหนด ให้แสดง
เมนูในแถบด้านบน ที่ถูกซ่อนอยู่ และเมื่อเลื่อนหน้าเพจกลับมาตำแหน่งบนสุด
เมนูด้านบนที่ถูกซ่อนอยู่ ก็จะหายไป แบบนี้เป็นต้น
CSS สร้างเมนูแนวนอน 2 ชั้นโดยไม่ใช้ javascript และตาราง table
https://www.ninenik.com/content.php?arti_id=144 via @ninenik
แนวทาง การเลื่อนแล้ว fixed ตำแหน่งเนื้อหาที่ต้องการ ด้วย jQuery
ตัวอย่าง
โค้ดตัวอย่าง
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">--> <link rel="stylesheet" href="mycss.css"> </head> <body> <ul class="v_menu"> <li><a href="#">Link menu item 1</a> <ul> <li><a href="#">Sub menu item 1</a></li> <li><a href="#">Sub menu item 2</a></li> <li><a href="#">Sub menu item 3</a></li> <li><a href="#">Sub menu item 4</a></li> </ul> </li> <li><a href="#">Link menu item 2</a></li> <li><a href="#">Link menu item 3</a> <ul> <li><a href="#">Sub menu item 1</a></li> <li><a href="#">Sub menu item 2</a></li> <li><a href="#">Sub menu item 3</a></li> <li><a href="#">Sub menu item 4</a></li> <li><a href="#">Sub menu item 5</a></li> <li><a href="#">Sub menu item 6</a></li> <li><a href="#">Sub menu item 7</a></li> <li><a href="#">Sub menu item 8</a></li> </ul> </li> <li><a href="#">Link menu item 4</a></li> </ul> <ul class="v_menu sticky"> <li><a href="#">Link menu item 1</a> <ul> <li><a href="#">Sub menu item 1</a></li> <li><a href="#">Sub menu item 2</a></li> <li><a href="#">Sub menu item 3</a></li> <li><a href="#">Sub menu item 4</a></li> </ul> </li> <li><a href="#">Link menu item 2</a></li> <li><a href="#">Link menu item 3</a> <ul> <li><a href="#">Sub menu item 1</a></li> <li><a href="#">Sub menu item 2</a></li> <li><a href="#">Sub menu item 3</a></li> <li><a href="#">Sub menu item 4</a></li> <li><a href="#">Sub menu item 5</a></li> <li><a href="#">Sub menu item 6</a></li> <li><a href="#">Sub menu item 7</a></li> <li><a href="#">Sub menu item 8</a></li> </ul> </li> <li><a href="#">Link menu item 4</a></li> </ul> <div style="margin:auto;width:100%;"> <span>This is line 1</span> <br> <span>This is line 2</span> <br> <span>This is line 3</span> <br> <span>This is line 4</span> <br> <span>This is line 5</span> <br> <span>This is line 6</span> <br> <span>This is line 7</span> <br> <span>This is line 8</span> <br> <span>This is line 9</span> <br> <span>This is line 10</span> <br> <span>This is line 11</span> <br> <span>This is line 12</span> <br> <span>This is line 13</span> <br> <span>This is line 14</span> <br> <span>This is line 15</span> <br> <span>This is line 16</span> <br> <span>This is line 17</span> <br> <span>This is line 18</span> <br> <span>This is line 19</span> <br> <span>This is line 20</span> <br> <span>This is line 21</span> <br> <span>This is line 22</span> <br> <span>This is line 23</span> <br> <span>This is line 24</span> <br> <span>This is line 25</span> <br> <span>This is line 26</span> <br> <span>This is line 27</span> <br> <span>This is line 28</span> <br> <span>This is line 29</span> <br> <span>This is line 30</span> <br> <span>This is line 31</span> <br> <span>This is line 32</span> <br> <span>This is line 33</span> <br> <span>This is line 34</span> <br> <span>This is line 35</span> <br> <span>This is line 36</span> <br> <span>This is line 37</span> <br> <span>This is line 38</span> <br> <span>This is line 39</span> <br> <span>This is line 40</span> <br> <span>This is line 41</span> <br> <span>This is line 42</span> <br> <span>This is line 43</span> <br> <span>This is line 44</span> <br> <span>This is line 45</span> <br> <span>This is line 46</span> <br> <span>This is line 47</span> <br> <span>This is line 48</span> <br> <span>This is line 49</span> <br> <span>This is line 50</span> <br> <br style="clear:both;" > </div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <!--<script type="text/javascript" src="script.js"></script> --> <script type="text/javascript" > $(function () { // เงื่อนไข event เมื่อมีการเลื่อน scrollbar ในหน้าเพจ $(window).scroll(function(){ // เมื่อเลื่อน scroll bar หน้าเพจ ถึงตำแหน่งที่มากกว่าหรือเท่ากับตำแหน่งที่ต้องการ // เมื่อเลื่อน scroll bar หน้าเพจ ถึงตำแหน่ง ที่ทำให้ div // console.log($(document).scrollTop()); if($(document).scrollTop()>30){ $(".sticky").css({ /* */ 'top':'0px' }); }else{ // เลื่อนกลับมาอยู่ตำแหน่งเดิม ถ้าไม่อยู่ในเงื่อนไข $(".sticky").css({ 'top':'-100px' }); } }); }); </script> </body> </html>
ไฟล์ mycss.css
body,html{ margin:0; padding:0; font-family:Tahoma, Geneva, sans-serif; font-size:12px; } ul.v_menu{ /* กำหนดขอบเขตของเมนู */ display: block; width: 100%; list-style:none; margin:0px; padding:0px; font-family:tahoma, "Microsoft Sans Serif", Vanessa; font-size:12px; z-index: 9999; background-color: #8671EF; height: 32px; border-bottom: 1px #7A6DDC dashed; } ul.v_menu > li{ /* กำหนดรูปแบบให้กับเมนูหลัก */ display:block; width:150px; height:32px; text-indent:5px; background-color:#8671EF; float:left; text-align:center; transition: all 0.3s } ul.v_menu > li:hover{ /* กำหนดรูปแบบให้กับเมนูเมื่อมีเมาส์อยู่เหนือ */ display:block; width:150px; text-indent:5px; background-color:#B2A8FE; float:left; text-align:center; } ul.v_menu > li > a,ul.v_menu > li > ul > li > a{ /* กำหนดรูปแบบให้กับลิ้งค์ */ display:block; width:150px; height:32px; text-decoration:none; color:#FFFFFF; line-height:30px; border-bottom: 1px #B2A8FE dashed; } ul.v_menu > li > ul{ display:none; list-style:none; margin:0px; padding:0px; position: relative; } ul.v_menu > li:hover > ul { display:block; width:150px; } ul.v_menu > li > ul > li{ /* กำหนดรูปแบบให้กับเมนูย่อย */ display:block; width:150px; height:32px; text-indent:5px; background-color:#8671EF; border-bottom: 1px #FFFFFF dashesed; float:left; text-align:center; transition: all 0.3s } ul.v_menu > li > ul > li:hover{ /* กำหนดรูปแบบให้กับเมนูย่อยเมื่อเมาส์อยู่เหนือ */ display:block; width:150px; height:32px; text-indent:5px; background-color:#B2A8FE; float:left; text-align:center; } /*ส่วนของเมนูที่ 2 ที่จะยึดไว้ด้านบนกรณีเลื่อน scroll bar มาถึงตำแหน่งที่ต้องการ*/ ul.v_menu.sticky{ position: fixed; top: -100px; transition: all 0.4s; background-color: #000000; border-bottom: 1px #757575 dashed; z-index: 9999; } ul.v_menu.sticky li{ background-color: #000000; } ul.v_menu.sticky li:hover{ background-color: #757575; } ul.v_menu.sticky > li > a,ul.v_menu > li > ul > li > a{ border-bottom: 1px #757575 dashed; }