Window.resize или document.resize, что работает, а что нет?VueJS - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Vuetable и это потрясающе.

Я пытаюсь создать верхнюю горизонтальную прокрутку, что я сделал, и она работает нормально.Но мне нужно назначить некоторые события на window.resize.

Я создал компонент, такой как

<template>
<div class="top-scrollbar">
  <div class="top-horizontal-scroll"></div>
</div>
</template>

<style scoped>
.top-scrollbar {
  width: 100%;
  height: 20px;
  overflow-x: scroll;
  overflow-y: hidden;
  margin-left: 14px;

  .top-horizontal-scroll {
    height: 20px;
  }
}
</style>

<script>
export default {
  mounted() {
    document.querySelector("div.top-scrollbar").addEventListener('scroll', this.handleScroll);
    document.querySelector("div.vuetable-body-wrapper").addEventListener('scroll', this.tableScroll);
  },
  methods: {
    handleScroll () {
      document.querySelector("div.vuetable-body-wrapper").scrollLeft = document.querySelector("div.top-scrollbar").scrollLeft
    },

    tableScroll() {
      document.querySelector("div.top-scrollbar").scrollLeft = document.querySelector("div.vuetable-body-wrapper").scrollLeft
    }
  }
}
</script>

Я вызываю его над таблицей, например <v-horizontal-scroll />

Я создал миксин как

Vue.mixin({
  methods: {
    setScrollBar: () => {
      let tableWidth = document.querySelector("table.vuetable").offsetWidth;
      let tableWrapper = document.querySelector("div.vuetable-body-wrapper").offsetWidth;

      document.querySelector("div.top-horizontal-scroll").style.width = tableWidth + "px";
      document.querySelector("div.top-scrollbar").style.width = tableWrapper + "px"
    }
  }
})

И я вызываю его, когда пользовательский компонент, на котором создается Vuetable

  beforeUpdate() {
    document.addEventListener("resize", this.setScrollBar());
  },

  mounted() {
    this.$nextTick(function() {
      window.addEventListener('resize', this.setScrollBar);
      this.setScrollBar()
    });
  },

Я хочу понять, как происходит это изменение размераработает.

Если я изменю хотя бы одну вещь в приведенном выше коде.У меня начинаются проблемы.

Либо он неправильно устанавливает ширину основного div прокрутки, либо даже this.setScrollBar не работает при изменении размера.

Мне не ясно, что этологика и как это работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...