原生js實現全屏滾動

原生js實現全屏滾動(firefox兼容性問題還沒解決)css

最近發現刷前端在線簡歷,發現許多人都使用了全屏滾動特效前端

因此今天特地來實現一下佈局

css樣式:
* {
  margin: 0;
  padding: 0;
}
h1 {
  width: 200px;
  height: 200px;
  margin: 0 auto;
}
div{
  overflow: hidden;
  position: absolute;
}
.show {
  display: block;
}this

/*第一頁*/
#one {
  background: red;
  z-index: 4;
}
/*第二頁*/
#two {
  background: blue;
  z-index: 3;
}spa

/*第三頁*/
#three {
  background: pink;
  z-index: 2;
}firefox

/*第四頁*/
#four {
  background: black;
  z-index: 1;
}

對象

HTML佈局:
<!-- 第一頁-->
  <div id="one"class="pops hiddens show">
    <h1>楊曉煊</h1>
  </div>
<!-- 第二頁-->
  <div id="two" class="pops hiddens">
    <h1>楊曉煊</h1>
  </div>
<!-- 第三頁-->
  <div id="three" class="pops hiddens">
    <h1>楊曉煊</h1>
  </div>
<!-- 第四頁-->
  <div id="four" class="pops hiddens">
    <h1>楊曉煊</h1>
  </div>索引

 

js代碼:three

<script>事件

 

//獲取屏幕有效的寬和高.
windowHeight=document.docementElement.clientHeight;
windowWidth=document.documentElement.clientWidth;

//獲得div元素的集合

divs=document.getElementsByTagName("div");

/*js實現方法:

(1):先循環div元素集合.而後爲div元素綁定事件;

(2):而後爲每一個div設置一個line屬性,從0~div元素的個數.根據line屬性的值判斷當前顯示的div的索引;

(3):而後滑輪滾動時再判斷滾動向上仍是向下轉動.

(4):而後根據滑動方向顯示出當前div的上一個或者下一個,同時將當前對象隱藏起來(經過添加類名來實現隱藏!!)

(5):同時設置上限和下限,到達頂部則上滑時直接return;到達底部下滑則直接return.

*/

for(var i=0;i<pops.length;i++){
  divs[i].style.width=windowWidth+"px";
  divs[i].style.height=windowHeight+"px";
  divs[i].setAttribute("line",i);
  divs[i].onmousewheel=function(){
  var line=parseInt(this.getAttribute("line"));

  if(event.wheelDelta<0){
    if(line==3){return;}
    this.classList.remove("show");
    divs[line+1].classList.add("show");
  }else{
    if(line==0){return;}
    this.classList.remove("show");
    divs[line-1].classList.add("show");
    };
  }
}

 

結語:;第一次發博.第一次本身動手作特效.很粗糙,之後再改進.

相關文章
相關標籤/搜索