изменить цвет фона панели навигации при событии прокрутки с помощью vuejs - PullRequest
0 голосов
/ 25 января 2020

как изменить цвет фона панели навигации при прокрутке события с помощью Vuejs. Я попробовал событие V-scroll, используя этот ответ Как изменить css при прокрутке в Vue это код, но он не работает?

<nav v-scroll="handleScroll">
        <div class="logo">
          <img src="../assets/images/logo.png" alt="logo" />
          <button id="mobBtn" @click="displayList">
            <i class="fas fa-bars"></i>
          </button>
        </div>

        <ul class="navlist" id="mobList">
          <li>
            <a href>Home</a>
          </li>
          <li>
            <a href>About</a>
          </li>
          <li>
            <a href>Blog</a>
          </li>
          <li>
            <a href>Contact</a>
          </li>
        </ul>
      </nav>
<script>
export default {
  name: "Header",
  data: {},
  methods: {
  handleScroll: function (evt, el) {
    alert("Dddd")
      if (window.scrollY > 50) {
        el.setAttribute(
          'style',
          'background-color: red;'
        )
      }
      return window.scrollY > 100
    }
};
</script>

1 Ответ

3 голосов
/ 25 января 2020

Добавьте прослушиватель событий в ваше окно и назначьте новые данные для вашей модели данных и обновите их значение при запуске события прокрутки. см. код ниже

дата модели

data: {
    scrollPosition: null
},

методы

methods: {
    updateScroll() {
       this.scrollPosition = window.scrollY
    }
}

навесной крюк

mounted() {
    window.addEventListener('scroll', this.updateScroll);
}

Теперь, в вашем случае, поместите это в вашу панель навигации

<nav :class="{change_color: scrollPosition > 50}">
      ...
      ...
</nav>

и поместите css в свой класс change_color

<style scoped>
   .change_color {
       background-color:red
   }
</style
...