<template>
  <div id="wrap" :style="{ height: screenHeight + 'px' }">
    <div id="main" :style="{ top: nowTop + 'px' }">
      <div style="background-color: #1b6d85" id="page1" class="page"></div>
      <div style="overflow:auto;" id="page2" class="page">
          <Index id="index" v-model="change"/>
      </div>
    </div>
  </div>
</template>

<script>
import Index from '@/views/index/index'

export default {
  name: 'Home',
  components: {
    Index
  },
  data() {
    return {
      screenWeight: 0,        // 屏幕宽度
      screenHeight: 0,        // 屏幕高度
      index: 1,               // 用于判断翻页
      curIndex: 1,            // 当前页的index
      startTime: 0,           // 翻屏起始时间
      endTime: 0,             // 上一次翻屏结束时间
      nowTop: 0,              // 翻屏后top的位置
      pageNum: 2,             // 一共有多少页
      change:false,
      main: Object,
      obj: Object,
      indexs:Object,
    }
  },
  mounted() {
    this.screenWeight = document.documentElement.clientWidth;
    this.screenHeight = document.documentElement.clientHeight;
    this.main = document.getElementById("main");
    this.obj = document.getElementsByTagName("div");
    this.indexs = document.getElementById("index");
    for (let i = 0; i < this.obj.length; i++) {
      if (this.obj[i].className == 'page') {
        this.obj[i].style.height = this.screenHeight + "px";
      }
    }
    this.pageNum = document.querySelectorAll(".page").length;

    // 浏览器兼容
    if ((navigator.userAgent.toLowerCase().indexOf("firefox") != -1)) {
      document.addEventListener("DOMMouseScroll", this.scrollFun, false);
    } else if (document.addEventListener) {
      document.addEventListener("mousewheel", this.scrollFun, false);
    } else if (document.attachEvent) {
      document.attachEvent("onmousewheel", this.scrollFun);
    } else {
      document.onmousewheel = this.scrollFun;
    }
  },
  methods: {
    hchang(e){
      console.log(e)
    },
    scrollFun(event) {
      this.startTime = new Date().getTime();
      // mousewheel事件中的 “event.wheelDelta” 属性值：返回的如果是正值说明滚轮是向上滚动
      // DOMMouseScroll事件中的 “event.detail” 属性值：返回的如果是负值说明滚轮是向上滚动
      let delta = event.detail || (-event.wheelDelta);
      console.log(this.indexs.offsetTop,"vvvv")
      // 如果当前滚动开始时间和上次滚动结束时间的差值小于1.5s，则不执行翻页动作，这样做是为了实现类似节流的效果
      if ((this.startTime - this.endTime) > 1000) {
        if (delta > 0 && parseInt(this.main.offsetTop) >= -(this.screenHeight * (this.pageNum - 2))) {
          // 向下滚动
          this.index = 2;
          this.toPage(this.index);
        } else if (delta < 0 && parseInt(this.main.offsetTop) < 0) {
          // 向上滚动




          this.index = 1;
          this.toPage(this.index);
        }
        // 本次翻页结束，记录结束时间，用于下次判断
        this.endTime = new Date().getTime();
      }
    },
    // 翻页
    toPage(index) {
      if (index<=0){
        return
      }
      if (index != this.curIndex) {
        let delta = index - this.curIndex;
        this.nowTop = this.nowTop - delta * this.screenHeight;
        this.curIndex = index;
      }
    }
  }
}
</script>
<style>
html, body {
  /*height: 100%;*/
}

body, ul, li, a, p, div {
  /*慎删*/
  padding: 0px;
  margin: 0px;
}

#wrap {
  overflow: hidden;
  width: 100%;
}

#main {
  position: relative;
  transition: top 1.5s;
}

.page {
  /*谨删*/
  width: 100%;
  margin: 0;
}

#pageUl {
  position: fixed;
  right: 10px;
  bottom: 50%;
}

.active {
  color: red;
}
</style>
