แสดงแถบนำทางแบบลอยเมื่อเลื่อน

ฉันใช้ Blogspot และฉันต้องการบรรลุแถบนำทางแบบลอยแบบนี้:

http://apairandasparediy.com/

อย่างที่คุณเห็น เมื่อคุณเลื่อน แถบนำทางแบบลอยจะแสดงขณะที่เลื่อนลง

สิ่งที่ฉันรู้คือสร้างแถบนำทาง:

<div id="floating-nav-content">
   <div class="floating-nav">
      <ul id="menu-floating-menu" class="menu">
         <li>...</li>
         <li>...</li>
         <li>...</li>
         <li>...</li>
      </ul>
   </div>
</div>

แต่ฉันยังไม่รู้จัก jQuery หรือ javascript ที่เหลือ ฉันก็มีการค้นหาเช่นกัน แต่พวกเขาไม่ได้สอนสิ่งที่ฉันต้องการอย่างแน่นอน

ฉันยังใหม่กับ jQuery และยังไม่รู้ว่าจะใช้งานสิ่งนี้อย่างไร

ความช่วยเหลือของคุณได้รับการชื่นชมมาก


person kaynewilder    schedule 01.05.2015    source แหล่งที่มา


คำตอบ (1)


สิ่งนี้ควรทำสิ่งที่คุณต้องการ (สมมติว่าคุณได้รวมไลบรารี jQuery แล้ว)

    <script type="text/javascript">
        $(document).scroll(function() {
            if ($(this).scrollTop() == 0) {
                $("#floating-nav-content").slideUp(400);
            } else {
                $("#floating-nav-content").slideDown(600);
            }

        });
    </script>

CSS ก็มีความสำคัญเช่นกัน เนื่องจากจะทำให้แถบนำทางอยู่ในตำแหน่งคงที่ที่ด้านบนของหน้า

    <style type="text/css">
        html, body {
            margin: 0;
            padding: 0;
        }

        #floating-nav-content {
            top: 0;
            width: 100%;
            height: 20px;
            background-color: #000;
            position: fixed;
            display: none;
            color: #FFF;
            padding: 5px;
        }
    </style>

และแน่นอนว่าเป็น HTML ฉันวางด้านบนและด้านล่างทั้งหมดไว้ในแท็ก body

    <div id="floating-nav-content">
        Content
    </div>
person Chris Hessler    schedule 01.05.2015
comment
แน่นอนว่าสไตล์บางอย่างขาดหายไปเมื่อเทียบกับตัวอย่างของคุณ แต่ฉันแน่ใจว่าคุณคงคิดออกเอง ;) โชคดี - person Chris Hessler; 01.05.2015
comment
ขอบคุณ! แต่ปัญหาคือเมื่อโหลดเพจแล้ว แถบนำทางแบบลอยจะมองเห็นได้ตามค่าเริ่มต้น ฉันจะซ่อนมันได้อย่างไร และมันจะแสดงเฉพาะเมื่อฉันเลื่อนลงเท่านั้น? - person kaynewilder; 01.05.2015
comment
ใช้จอแสดงผล: ไม่มี; คุณสมบัติใน CSS ของคุณ นอกจากนี้ หากใช้ไม่ได้ผลไม่ว่าด้วยเหตุผลใดก็ตาม (ควร!) คุณสามารถแก้ไขได้โดยใช้ $(#floating-nav-bar).hide(); ที่ด้านบนของสคริปต์ - person Chris Hessler; 01.05.2015
comment
โอ้ ฉันลืมไป ตอนนี้มันทำงานได้อย่างสมบูรณ์แบบ ขอบคุณมาก! - person kaynewilder; 01.05.2015
comment
ฉันจะปล่อยให้การนำทางแบบลอยแสดงเฉพาะเมื่อถึงจุดใดจุดหนึ่งในเพจของฉันได้อย่างไร เช่น เมื่อฉันเลื่อนและรูปภาพส่วนหัวของเพจขึ้นไปถึงด้านบน นั่นก็จะเป็นเวลาที่แถบนำทางแบบลอยจะแสดง - person kaynewilder; 01.05.2015
comment
คุณสามารถเล่นกับค่าของ scrollTop() ทั้งนี้ขึ้นอยู่กับความสูงของส่วนหัวของคุณ เช่น if ($(this).scrollTop() ‹ 220) - person Chris Hessler; 01.05.2015