implemented mouse wheel scrolling
This commit is contained in:
parent
eb6069175c
commit
5eeb3a7768
|
@ -37,7 +37,7 @@
|
||||||
direction="left"
|
direction="left"
|
||||||
@navClick="handleNavClickDesktop(activeRow, 'left')"/>
|
@navClick="handleNavClickDesktop(activeRow, 'left')"/>
|
||||||
<ThumbNav class="thumb-nav thumb-nav--right mobile-hide"
|
<ThumbNav class="thumb-nav thumb-nav--right mobile-hide"
|
||||||
:class="{ 'is-active': thumbRowOffsets[activeRow] > 0 }"
|
:class="{ 'is-active': isRightDesktopNavActive }"
|
||||||
direction="right"
|
direction="right"
|
||||||
@navClick="handleNavClickDesktop(activeRow, 'right')"/>
|
@navClick="handleNavClickDesktop(activeRow, 'right')"/>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -71,7 +71,8 @@ export default {
|
||||||
return {
|
return {
|
||||||
thumbRowOffsets: new Array(this.galleries.length),
|
thumbRowOffsets: new Array(this.galleries.length),
|
||||||
isLeftDesktopNavActive: false,
|
isLeftDesktopNavActive: false,
|
||||||
resizeIsThrottling: false
|
resizeIsThrottling: false,
|
||||||
|
isThumbsScrolling: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -79,6 +80,9 @@ export default {
|
||||||
thumbsVerticalOffset () {
|
thumbsVerticalOffset () {
|
||||||
let rowHeight = this.$refs.thumbContainer ? this.$refs.thumbContainer[0].clientHeight : 0;
|
let rowHeight = this.$refs.thumbContainer ? this.$refs.thumbContainer[0].clientHeight : 0;
|
||||||
return rowHeight * this.activeRow
|
return rowHeight * this.activeRow
|
||||||
|
},
|
||||||
|
isRightDesktopNavActive () {
|
||||||
|
return this.thumbRowOffsets[this.activeRow] > 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -95,6 +99,9 @@ export default {
|
||||||
this.updateElements()
|
this.updateElements()
|
||||||
})
|
})
|
||||||
window.addEventListener('resize', this.handleResize)
|
window.addEventListener('resize', this.handleResize)
|
||||||
|
this.$refs.galleryThumbsList.addEventListener('wheel', this.handleThumbsScroll)
|
||||||
|
// firefox
|
||||||
|
this.$refs.galleryThumbsList.addEventListener('mousewheel', this.handleThumbsScroll)
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -166,7 +173,32 @@ export default {
|
||||||
this.resizeIsThrottling = false
|
this.resizeIsThrottling = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
handleThumbsScroll(event) {
|
||||||
|
if (event.wheelDeltaX) {
|
||||||
|
if (event.wheelDeltaX > 0) {
|
||||||
|
this.soThumbScroll('right')
|
||||||
|
} else if (event.wheelDeltaX < 0) {
|
||||||
|
this.doThumbScroll('left')
|
||||||
|
}
|
||||||
|
} else if (event.deltaY) {
|
||||||
|
if (event.deltaY > 0) {
|
||||||
|
this.doThumbScroll('left')
|
||||||
|
} else if (event.deltaY < 0) {
|
||||||
|
this.doThumbScroll('right')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doThumbScroll(direction) {
|
||||||
|
if (this.isThumbsScrolling) { return }
|
||||||
|
|
||||||
|
this.isThumbsScrolling = true
|
||||||
|
if ((direction === 'left' && this.isLeftDesktopNavActive) || (direction === 'right' && this.isRightDesktopNavActive)) {
|
||||||
|
this.handleNavClickDesktop(this.activeRow, direction)
|
||||||
|
}
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.isThumbsScrolling = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue