簡體   English   中英

使用jQuery或JS滾動時如何隱藏和顯示div

[英]How to hide and show div when scrolling using jQuery or JS

我想制作一個需要在向下滾動時隱藏並需要顯示向上滾動的容器。 如果不滾動,我希望它可見。

這是我的代碼塊。

 $.fn.scrollEnd = function(callback, timeout) { $(this).scroll(function() { var $this = $(this); if ($this.data('scrollTimeout')) { clearTimeout($this.data('scrollTimeout')); } $this.data('scrollTimeout', setTimeout(callback, timeout)); }); }; $(window).scroll(function() { $('#navbar').fadeOut(); }); $(window).scrollEnd(function() { $('#navbar').fadeIn(); }, 700);
 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"/> <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.3/font/bootstrap-icons.css" rel="stylesheet"/> <!--add by me 26/05/22--> <div id="navbar"> <footer class="mobile_footer"> <div class="mobile_footer_inner"> <nav class="navbar fixed-bottom bg-white"> <a href="#" class="menu_item"> <i class="bi bi-house"></i> </a> <a href="#" class="menu_item"> <i class="bi bi-chat-dots"></i> </a> <a href="/Ad/PostAd" class="menu_item menu_item__middle_plus"> <i class="bi bi-plus-circle"></i> </a> <a href="#" class="menu_item"> <i class="bi bi-bookmark"></i> </a> <a href="#" class="menu_item"> <i class="bi bi-person"></i> </a> </nav> </div> </footer> </div> <!--end--> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

我的腳本工作正常,但它以不同的方式和類型工作!

使用此代碼在滾動時隱藏導航欄,並在停止滾動時顯示它。

window.addEventListener("scroll", function () {
  $("#navbar").fadeOut();     //hide when scrolling

  clearTimeout($.data(this, 'scrollTimer'));
    $.data(this, 'scrollTimer', setTimeout(function() {
      $("#navbar").fadeIn(); 
    }, 550));   //show after this much milliseconds when scrolling has stopped
});

工作示例

使用javascript顯示/隱藏<div>滾動時</div><div id="text_translate"><p>我想制作一個采用性的粘性導航欄。 我以前從未用 Javascript 編寫過自己的代碼。</p><p> 我的解決方案是制作兩個基於滾動顯示/隱藏的粘性導航欄。 我的解決方案是這樣的:</p><ul><li> 首先,在完成任何滾動之前,我的第一個導航欄(黃色)將可見並位於距頂部 100px 的位置,即top:100px 。</li><li> 然后,當啟動滾動時,我希望這個黃色&lt;div&gt;使用display:none消失。</li><li> 同樣在滾動時,在黃色導航欄消失的同時,我會顯示帶有top:200px的橙色導航欄。</li><li> 現在,橙色條從一開始就(錯誤地)顯示,但它不應該......在任何給定時間只應顯示一個條。 我希望欄,即兩個&lt;div&gt;元素,在多次上下滾動時也能保持出現/消失。</li></ul><p> 我的 javascript 有問題,codepen 抱怨$未定義。</p><p> <a href="https://codepen.io/G1111/pen/RwBPrPR" rel="nofollow noreferrer">https://codepen.io/G1111/pen/RwBPrPR</a> </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $(window).scroll(function() { Testvariable = $(window).scrollTop(); if (Testvariable == 0) { document.getElementById("stickys").style.display = "normal"; document.getElementById("stickys2").style.display = "none"; } else { document.getElementById("stickys").style.display = "none"; document.getElementById("stickys2").style.display = "normal"; } });</pre><pre class="snippet-code-css lang-css prettyprint-override"> #stickys { top: 100px;important: background-color; yellow: height; 100px: position; fixed: position; fixed:important; box-sizing: border-box; margin: 0 0% 0 0%;important: padding; 0:important; width: calc(60vw - 0%); left: calc(20vw - 0%); right: calc(20vw - 0%); width: calc(100vw - 0%); left: 0px; right: 0px; opacity: 1; } #stickys2 { top: 200px;important: background-color; orange: height; 100px: position; fixed: position; fixed:important; box-sizing: border-box; margin: 0 0% 0 0%;important: padding; 0:important; width: calc(60vw - 0%); left: calc(20vw - 0%); right: calc(20vw - 0%); width: calc(100vw - 0%); left: 0px; right: 0px; opacity: 1; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;div id="stickys"&gt; My first sticky navigation bar. Show initially, then hide when slighest scroll, that is when Testvariable&gt;0. Here, top:100px &lt;/div&gt; &lt;div id="stickys2"&gt; My second sticky navigation bar. Hide initially, then show when slighest scroll, that is when Testvariable&gt;0. Here, top: 200px. &lt;/div&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;</pre></div></div><p></p></div>

[英]Using javascript to show/hide <div> when scrolling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 滾動時如何使用jQuery顯示/隱藏div? 使用javascript顯示/隱藏<div>滾動時</div><div id="text_translate"><p>我想制作一個采用性的粘性導航欄。 我以前從未用 Javascript 編寫過自己的代碼。</p><p> 我的解決方案是制作兩個基於滾動顯示/隱藏的粘性導航欄。 我的解決方案是這樣的:</p><ul><li> 首先,在完成任何滾動之前,我的第一個導航欄(黃色)將可見並位於距頂部 100px 的位置,即top:100px 。</li><li> 然后,當啟動滾動時,我希望這個黃色&lt;div&gt;使用display:none消失。</li><li> 同樣在滾動時,在黃色導航欄消失的同時,我會顯示帶有top:200px的橙色導航欄。</li><li> 現在,橙色條從一開始就(錯誤地)顯示,但它不應該......在任何給定時間只應顯示一個條。 我希望欄,即兩個&lt;div&gt;元素,在多次上下滾動時也能保持出現/消失。</li></ul><p> 我的 javascript 有問題,codepen 抱怨$未定義。</p><p> <a href="https://codepen.io/G1111/pen/RwBPrPR" rel="nofollow noreferrer">https://codepen.io/G1111/pen/RwBPrPR</a> </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $(window).scroll(function() { Testvariable = $(window).scrollTop(); if (Testvariable == 0) { document.getElementById("stickys").style.display = "normal"; document.getElementById("stickys2").style.display = "none"; } else { document.getElementById("stickys").style.display = "none"; document.getElementById("stickys2").style.display = "normal"; } });</pre><pre class="snippet-code-css lang-css prettyprint-override"> #stickys { top: 100px;important: background-color; yellow: height; 100px: position; fixed: position; fixed:important; box-sizing: border-box; margin: 0 0% 0 0%;important: padding; 0:important; width: calc(60vw - 0%); left: calc(20vw - 0%); right: calc(20vw - 0%); width: calc(100vw - 0%); left: 0px; right: 0px; opacity: 1; } #stickys2 { top: 200px;important: background-color; orange: height; 100px: position; fixed: position; fixed:important; box-sizing: border-box; margin: 0 0% 0 0%;important: padding; 0:important; width: calc(60vw - 0%); left: calc(20vw - 0%); right: calc(20vw - 0%); width: calc(100vw - 0%); left: 0px; right: 0px; opacity: 1; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;div id="stickys"&gt; My first sticky navigation bar. Show initially, then hide when slighest scroll, that is when Testvariable&gt;0. Here, top:100px &lt;/div&gt; &lt;div id="stickys2"&gt; My second sticky navigation bar. Hide initially, then show when slighest scroll, that is when Testvariable&gt;0. Here, top: 200px. &lt;/div&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;.&lt;br&gt;</pre></div></div><p></p></div> 使用jQuery單擊文本框時如何隱藏和顯示div 如何在向下滾動時隱藏div,然后向上滾動顯示 如何使用jQuery隱藏和顯示div的一部分 JS / jQuery在頁面加載時顯示DIV,在單擊時隱藏 滾動時顯示/隱藏 div 或圖像 使用純JS滾動時如何隱藏div? JS / jQuery(隱藏div,點擊顯示div) 使用JS顯示/隱藏Div
相關標簽
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM