Репликация пролистывания WhatsApp между переходами вкладок в VueJS / VuetifyJS

Я использую платформу VuetifyJS для VueJS, и я хотел бы воспроизвести переход между вкладками WhatsApp для Android использует.

Вы можете смахнуть в WhatsApp влево или вправо, и вы увидите новый раздел while вы смахиваете. В VuetifyJS вы не видите содержимое вкладок, until вы завершили смахивание. Я сделал пример CodePen, который у меня есть: https://codepen.io/anon/pen/GdbxoL?&editors=101

Как показать содержимое вкладки при переходе к ней?

Изменить: для меня сработало решение Flickity: https://flickity.metafizzy.co/


person Tom    schedule 25.05.2018    source источник
comment
Я действительно вижу содержимое вкладки, когда смахиваю на моем компьютере, эта проблема видна только на маленьких экранах?   -  person Hammerbot    schedule 28.05.2018
comment
@Hammerbot Содержимое не перемещается при смахивании. В настоящее время вкладка изменяется только после того, как вы поднимаете палец, а содержимое должно перемещаться вместе с пальцем.   -  person FINDarkside    schedule 30.05.2018
comment
Следите за этой проблемой, она появится в vuetify v2, по-видимому, github.com/vuetifyjs/vuetify/issues/6565 < / а>   -  person Traxo    schedule 08.03.2019
comment
@Traxo Это все еще просто запрос функции или решение о будущем обновлении Vuetify?   -  person Tom    schedule 17.03.2019


Ответы (1)


Вам нужно использовать директиву v-touch для захвата жеста смахивания и после того, как вы можете выполнить метод для перехода к следующей или предыдущей вкладке.

EDIT: это пример использования директивы v-touch с вкладками.

<div id="app">
  <v-app id="inspire">
    <div>
      <v-tabs
        v-touch="{
        left: () => assignSwipeValue('Left'),
        right: () => assignSwipeValue('Right')
        }"
        v-model="active"
        color="cyan"
        dark
        slider-color="yellow"
      >
        <v-tab
          v-for="n in 3"
          :key="n"
          ripple
        >
          Item {{ n }}
        </v-tab>
        <v-tab-item
          v-for="n in 3"
          :key="n"
        >
          <v-card flat>
            <v-card-text>{{ text }}</v-card-text>
          </v-card>
        </v-tab-item>
      </v-tabs>

      <div class="text-xs-center mt-3">
        <v-btn @click.native="next">next tab</v-btn>
      </div>
    </div>
  </v-app>
</div>

JS

new Vue({
  el: '#app',
  data () {

    return {
      active: null,
      text: 'Swipe Example With Tabs'
    }

  },

  methods: {
    next () {
      const active = parseInt(this.active)
      this.active = (active < 2 ? active + 1 : 0).toString()
    },

    assignSwipeValue(direction) {
      this.next()
    }
  }
})

Вы можете увидеть живую демонстрацию здесь, но вам нужно открыть с мобильного устройства, проведите пальцем по мышь не работает.

person Ladd.c    schedule 01.06.2018
comment
Не могли бы вы привести пример? Вот что у меня есть на данный момент: codepen.io/anon/pen/GdbxoL?&editors= 101 - person Tom; 27.06.2018
comment
Я только что протестировал, но содержимое вкладок не перемещается, пока я двигаю пальцем. Я что-то упускаю? - person Tom; 28.06.2018
comment
Вы можете увидеть это для получения дополнительной информации. alligator.io/vuejs/vue-touch-events - person Ladd.c; 10.07.2018