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-click-outside": "^1.0.7",
|
||||||
"vue-resource": "^1.5.1",
|
"vue-resource": "^1.5.1",
|
||||||
"vue-router": "^3.0.2",
|
"vue-router": "^3.0.2",
|
||||||
|
"vue2-touch-events": "^1.1.2",
|
||||||
"vuex": "^3.0.1"
|
"vuex": "^3.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<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">
|
<div class="image-container">
|
||||||
<img :src="image.url" />
|
<img :src="image.url" />
|
||||||
</div>
|
</div>
|
||||||
@@ -26,6 +26,9 @@ export default {
|
|||||||
required: true,
|
required: true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
window.addEventListener('keyup', this.arrowNavigation)
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
forwards() {
|
forwards() {
|
||||||
eventHub.$emit('iteratePopoverImage', 1)
|
eventHub.$emit('iteratePopoverImage', 1)
|
||||||
@@ -33,8 +36,18 @@ export default {
|
|||||||
backwards() {
|
backwards() {
|
||||||
eventHub.$emit('iteratePopoverImage', -1)
|
eventHub.$emit('iteratePopoverImage', -1)
|
||||||
},
|
},
|
||||||
|
arrowNavigation(event) {
|
||||||
|
if (event.key === 'ArrowLeft') {
|
||||||
|
this.backwards()
|
||||||
|
} else if (event.key === 'ArrowRight') {
|
||||||
|
this.forwards()
|
||||||
|
}
|
||||||
|
},
|
||||||
close() {
|
close() {
|
||||||
eventHub.$emit('closePopover')
|
eventHub.$emit('closePopover')
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
window.removeEventListener('keyup')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ import App from './App'
|
|||||||
import router from './routes'
|
import router from './routes'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import BootstrapVue from 'bootstrap-vue'
|
import BootstrapVue from 'bootstrap-vue'
|
||||||
|
import Vue2TouchEvents from 'vue2-touch-events'
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
window.eventHub = new Vue();
|
window.eventHub = new Vue();
|
||||||
|
Vue.use(Vue2TouchEvents)
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
|
|||||||
@@ -6288,6 +6288,11 @@ vue2-collapse@^1.0.15:
|
|||||||
version "1.0.15"
|
version "1.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/vue2-collapse/-/vue2-collapse-1.0.15.tgz#d80c242f7ba2f5c70515e00dfcfc298f5137cbea"
|
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:
|
vue@^2.5.2:
|
||||||
version "2.5.17"
|
version "2.5.17"
|
||||||
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada"
|
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada"
|
||||||
|
|||||||
Reference in New Issue
Block a user