123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // https://forum.vuejs.org/t/how-to-use-helper-functions-for-imported-modules-in-vuejs-vue-template/6266/5
- export default {
- directives: {
- lazy: {
- bind (img, binding) {
- // console.log('lazy bind', img, binding)
- // show only the first image
- if (binding.value === 0) {
- img.setAttribute('src', img.getAttribute('data-src'))
- img.removeAttribute('data-src')
- img.classList.remove('lazy')
- }
- }
- },
- switcher: {
- inserted (el, binding) {
- // switch images on mousemove
- el.addEventListener('mousemove', function (event) {
- const figs = this.querySelectorAll('figure')
- // console.log('mousemove', this, event, figs.length)
- // let len = figs.length
- // let w = this.clientWidth;
- // let g = w / len;
- // let delta = Math.floor(event.layerX / g)
- const delta = Math.floor(event.layerX / (this.clientWidth / figs.length))
- // console.log('delta', delta)
- figs.forEach((fig, index) => {
- // console.log(index)
- if (index === delta) {
- // fig.style.display = "block"
- fig.classList.remove('hide')
- fig.classList.add('show')
- } else {
- // fig.style.display = "none"
- fig.classList.remove('show')
- fig.classList.add('hide')
- }
- })
- })
- }
- }
- },
- mounted () {
- // lazy load images on mouseover
- console.log('card mounted', this.$options.name)
- // if (this.$options.name ==! 'ModalCard') {
- this.$el.addEventListener('mouseover', function (event) {
- const imgs = this.querySelectorAll('.images figure img.lazy')
- // console.log('mousemove', this, imgs)
- imgs.forEach((img) => {
- // console.log('forEach img',img)
- img.setAttribute('src', img.getAttribute('data-src'))
- img.removeAttribute('data-src')
- img.classList.remove('lazy')
- })
- }, { once: true })
- // }
- },
- methods: {
- activateLazyLoad () {
- console.log('card activateLazyLoad', this.$options.name)
- this.$el.addEventListener('mousemove', function (event) {
- const imgs = this.querySelectorAll('.images figure img.lazy')
- // console.log('mousemove', this, imgs)
- imgs.forEach((img) => {
- // console.log('forEach img',img)
- img.setAttribute('src', img.getAttribute('data-src'))
- img.removeAttribute('data-src')
- img.classList.remove('lazy')
- })
- }, { once: true })
- }
- // deg2rad (deg) {
- // return deg * (Math.PI / 180)
- // },
- }
- }
|