簡體   English   中英

希望社交媒體欄能夠在Scroll上消失

[英]Would Like Social Media Bar to Disappear on Scroll

當用戶向下滾動時,我試圖讓我的社交媒體欄更多地離開和離開頁面。 需要的例子

當你一直向上滾動頁面時,我只想重新顯示該欄。 我想要的效果與此類似。 我希望我的消失在左邊,只有當用戶一直向上滾動頁面時才會重新出現。 如果可能的話,我希望將JavaScript保持在最低限度,並且(大部分)使用CSS轉換。

我目前的代碼是這樣的:

 var prevScrollpos = window.pageYOffset; window.onscroll = function() { var currentScrollPos = window.pageYOffset; if (prevScrollpos > currentScrollPos) { document.getElementById("mySidenav").style.left = "0"; } else { document.getElementById("mySidenav").style.right = "-50px"; } prevScrollpos = currentScrollPos; } 
 #mySidenav a { position: absolute; left: -100px; transition: 0.3s; padding: 15px; width: auto; text-decoration: none; font-size: 20px; color: white; border-radius: 0 5px 5px 0; } #mySidenav a:hover { left: 0; } #about { top: 20px; background-color: #1DA1F2; } #blog { top: 80px; background-color: #4867AA; } #projects { top: 140px; background-color: #E03B65; } #contact { top: 200px; background-color: #FF4500; } #filler { margin-top: 2000px; } 
 <html> <head> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.9/css/all.css" integrity="sha384-5SOiIsAziJl6AWe0HWRKTXlfcSHKmYV4RBF18PPJ173Kzn7jzMyFuTtk8JA7QQG1" crossorigin="anonymous"> </head> <body> <div id="mySidenav" class="sidenav"> <a href="#" id="about"> &nbsp; Twitter &nbsp; &nbsp; &nbsp; <i class="fab fa-twitter"></i> </a> <a href="#" id="blog">Facebook &nbsp; &nbsp; <i class="fab fa-facebook"></i> </a> <a href="#" id="projects"> &nbsp;Instagram &nbsp; <i class="fab fa-instagram"></i>&nbsp; </a> <a href="#" id="contact"> &nbsp; &nbsp; &nbsp;Reddit &nbsp; &nbsp; <i class="fab fa-reddit"></i> </a> </div> <p id="filler">Filler</p> </body> </html> 

誰能幫助指導我朝正確的方向發展?

如果我正確理解了您的問題,那么您可以通過添加以下隱藏菜單時應用的CSS來實現此目的:

#mySidenav.hidden a {
  left: -200px;
}

接下來,您將更新腳本,以便根據滾動方向從#mySidenav應用或刪除hidden類:

var prevScrollpos = window.pageYOffset;

window.addEventListener("scroll", function() {

  var currentScrollPos = window.pageYOffset;
  var sideNavClassList = document.getElementById("mySidenav").classList;

  // When new scroll position is less than previos, remove hidden
  // class from #mySidenav so that it comes back into view, otherwise
  // apply the hidden class to ensure that it's out of view
  if (prevScrollpos > currentScrollPos) {
    sideNavClassList.remove("hidden");
  } else {
    sideNavClassList.add("hidden");
  }

  prevScrollpos = currentScrollPos;
});

這是一個完整的工作片段 - 希望有所幫助!

 var prevScrollpos = window.pageYOffset; window.addEventListener('scroll', function() { var currentScrollPos = window.pageYOffset; var sideNavClassList = document.getElementById("mySidenav").classList; if (prevScrollpos > currentScrollPos) { sideNavClassList.remove("hidden"); } else { sideNavClassList.add("hidden"); } prevScrollpos = currentScrollPos; }) 
 #mySidenav.hidden a { left: -200px; } #mySidenav a { position: absolute; left: -100px; transition: 0.3s; padding: 15px; width: auto; text-decoration: none; font-size: 20px; color: white; border-radius: 0 5px 5px 0; } #mySidenav a:hover { left: 0; } #about { top: 20px; background-color: #1DA1F2; } #blog { top: 80px; background-color: #4867AA; } #projects { top: 140px; background-color: #E03B65; } #contact { top: 200px; background-color: #FF4500; } #filler { margin-top: 2000px; } 
 <html> <head> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.9/css/all.css" integrity="sha384-5SOiIsAziJl6AWe0HWRKTXlfcSHKmYV4RBF18PPJ173Kzn7jzMyFuTtk8JA7QQG1" crossorigin="anonymous"> </head> <body> <div id="mySidenav" class="sidenav"> <a href="#" id="about"> &nbsp; Twitter &nbsp; &nbsp; &nbsp; <i class="fab fa-twitter"></i> </a> <a href="#" id="blog">Facebook &nbsp; &nbsp; <i class="fab fa-facebook"></i> </a> <a href="#" id="projects"> &nbsp;Instagram &nbsp; <i class="fab fa-instagram"></i>&nbsp; </a> <a href="#" id="contact"> &nbsp; &nbsp; &nbsp;Reddit &nbsp; &nbsp; <i class="fab fa-reddit"></i> </a> </div> <p id="filler">Filler</p> </body> </html> 

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM