mirror of
				https://github.com/KevinMidboe/leifsopplevelser.git
				synced 2025-10-29 17:50:21 +00:00 
			
		
		
		
	Arrow and swipe navigation for popovers
This commit is contained in:
		@@ -20,6 +20,7 @@
 | 
			
		||||
    "vue-click-outside": "^1.0.7",
 | 
			
		||||
    "vue-resource": "^1.5.1",
 | 
			
		||||
    "vue-router": "^3.0.2",
 | 
			
		||||
    "vue2-touch-events": "^1.1.2",
 | 
			
		||||
    "vuex": "^3.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div class="popover" @click="close">
 | 
			
		||||
    <div class="popover" @click="close" v-touch:swipe.left="backwards" v-touch:swipe.right="forwards">
 | 
			
		||||
      <div class="image-container">
 | 
			
		||||
        <img :src="image.url" />
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -26,6 +26,9 @@ export default {
 | 
			
		||||
      required: true,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    window.addEventListener('keyup', this.arrowNavigation)
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    forwards() {
 | 
			
		||||
      eventHub.$emit('iteratePopoverImage', 1)
 | 
			
		||||
@@ -33,8 +36,18 @@ export default {
 | 
			
		||||
    backwards() {
 | 
			
		||||
      eventHub.$emit('iteratePopoverImage', -1)
 | 
			
		||||
    },
 | 
			
		||||
    arrowNavigation(event) {
 | 
			
		||||
      if (event.key === 'ArrowLeft') {
 | 
			
		||||
        this.backwards()
 | 
			
		||||
      } else if (event.key === 'ArrowRight') {
 | 
			
		||||
        this.forwards()
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    close() {
 | 
			
		||||
      eventHub.$emit('closePopover')
 | 
			
		||||
    },
 | 
			
		||||
    beforeDestroy() {
 | 
			
		||||
      window.removeEventListener('keyup')
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,10 +5,12 @@ import App from './App'
 | 
			
		||||
import router from './routes'
 | 
			
		||||
import axios from 'axios'
 | 
			
		||||
import BootstrapVue from 'bootstrap-vue'
 | 
			
		||||
 | 
			
		||||
import Vue2TouchEvents from 'vue2-touch-events'
 | 
			
		||||
 
 | 
			
		||||
Vue.config.productionTip = false
 | 
			
		||||
 | 
			
		||||
window.eventHub = new Vue();
 | 
			
		||||
Vue.use(Vue2TouchEvents)
 | 
			
		||||
 | 
			
		||||
new Vue({
 | 
			
		||||
  el: '#app',
 | 
			
		||||
 
 | 
			
		||||
@@ -6288,6 +6288,11 @@ vue2-collapse@^1.0.15:
 | 
			
		||||
  version "1.0.15"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vue2-collapse/-/vue2-collapse-1.0.15.tgz#d80c242f7ba2f5c70515e00dfcfc298f5137cbea"
 | 
			
		||||
 | 
			
		||||
vue2-touch-events@^1.1.2:
 | 
			
		||||
  version "1.1.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vue2-touch-events/-/vue2-touch-events-1.1.2.tgz#e900eb22ae067c3915976e1d38454be08cec0a7d"
 | 
			
		||||
  integrity sha512-xY5y76R9Rrhjs1ezrJE+GPI5C38JGj1Bz2aB2KAF+COwdVuW9ghaLj77JjOapVUXqqBL36ZObsZ68LD3DZzjmA==
 | 
			
		||||
 | 
			
		||||
vue@^2.5.2:
 | 
			
		||||
  version "2.5.17"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user