fixed linked card image lazy load, fixed linked material openModal
This commit is contained in:
parent
8c0d992feb
commit
bb2d915a36
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -14,10 +14,10 @@
|
|||
<figure
|
||||
v-for="(img, index) in item.images"
|
||||
:key="img.url"
|
||||
class="lazy"
|
||||
v-lazy="index"
|
||||
>
|
||||
<img
|
||||
class="lazy"
|
||||
v-lazy="index"
|
||||
:data-src="img.style_linkedmaterialcard.url"
|
||||
:title="img.title"
|
||||
/>
|
||||
|
@ -63,16 +63,46 @@ export default {
|
|||
if (this.isloggedin) {
|
||||
this.$modal.show(
|
||||
ModalCard,
|
||||
{ item: this.item },
|
||||
{
|
||||
item: this.item,
|
||||
// not really an event
|
||||
// more a callback function passed as prop to the component
|
||||
addNoteId:(id) => {
|
||||
// no needs to refresh the entire item via searchresults
|
||||
// plus if we are in article, there is not searchresults
|
||||
// this.refreshItem({id: this.item.id})
|
||||
// instead create the note id directly
|
||||
this.item.note = {id: id}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: `modal-${this.item.id}`,
|
||||
draggable: false,
|
||||
maxWidth: 850,
|
||||
maxHeight: 610,
|
||||
classes: "vm--modale-card",
|
||||
// this does not work
|
||||
// adaptative: true,
|
||||
// maxWidth: 850,
|
||||
// maxHeight: 610,
|
||||
width: '95%',
|
||||
height: '95%'
|
||||
}
|
||||
)
|
||||
} else {
|
||||
this.$modal.show(
|
||||
MemberWarning,
|
||||
{},
|
||||
{
|
||||
// name: `modal-${this.item.id}`,
|
||||
draggable: false,
|
||||
// classes: "vm--modale-card",
|
||||
// this does not work
|
||||
// adaptative: true,
|
||||
// maxWidth: 850,
|
||||
// maxHeight: 610,
|
||||
width: '400px',
|
||||
height: '250px'
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,64 +52,54 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// lazy load images on mouseover
|
||||
console.log('card mounted', this.$options.name)
|
||||
// if (this.$options.name ==! 'ModalCard') {
|
||||
this.activateLazyLoad()
|
||||
// }
|
||||
},
|
||||
updated () {
|
||||
// lazy load images on mouseover
|
||||
console.log('card mounted', this.$options.name)
|
||||
// if (this.$options.name ==! 'ModalCard') {
|
||||
this.$el.addEventListener('mouseover', function (event) {
|
||||
const figures = this.querySelectorAll('.images figure.lazy:not(.loaded):not(.loading)')
|
||||
// console.log('mousemove', this, imgs)
|
||||
figures.forEach((figure, index) => {
|
||||
const img = figure.querySelector('img:not(.blank)')
|
||||
// console.log('forEach img',img)
|
||||
img.classList.add('loading')
|
||||
img.addEventListener('load', function (e) {
|
||||
// console.log('img loaded', e)
|
||||
figure.classList.remove('loading')
|
||||
figure.classList.add('loaded')
|
||||
})
|
||||
img.addEventListener('error', function (e) {
|
||||
console.error('img ERROR', figure, e)
|
||||
})
|
||||
const src = img.getAttribute('data-src')
|
||||
|
||||
// for debug purpose
|
||||
console.log(figures.length, index)
|
||||
// let src = img.getAttribute('data-src')
|
||||
// if (index > 0 && index < figures.length - 1) {
|
||||
// src = img.getAttribute('data-src').replace('?', '/bad?')
|
||||
// }
|
||||
|
||||
img.setAttribute('src', src)
|
||||
// img.removeAttribute('data-src')
|
||||
// img.classList.remove('lazy')
|
||||
})
|
||||
}, { once: true })
|
||||
this.activateLazyLoad()
|
||||
// }
|
||||
}
|
||||
// ,
|
||||
// methods: {
|
||||
// // used by ModalCard
|
||||
// activateLazyLoad () {
|
||||
// console.log('card activateLazyLoad', this.$options.name)
|
||||
},
|
||||
methods: {
|
||||
// used by ModalCard
|
||||
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.classList.add('loading')
|
||||
// // img.onload = function (e) {
|
||||
// // console.log('img loaded', e)
|
||||
// // }
|
||||
// img.setAttribute('src', img.getAttribute('data-src'))
|
||||
// img.removeAttribute('data-src')
|
||||
// img.classList.remove('lazy')
|
||||
// })
|
||||
// }, { once: true })
|
||||
// }
|
||||
// // deg2rad (deg) {
|
||||
// // return deg * (Math.PI / 180)
|
||||
// // },
|
||||
// }
|
||||
this.$el.addEventListener('mouseover', function (event) {
|
||||
const figures = this.querySelectorAll('.images figure.lazy:not(.loaded):not(.loading)')
|
||||
// console.log('mousemove', this, imgs)
|
||||
figures.forEach((figure, index) => {
|
||||
const img = figure.querySelector('img:not(.blank)')
|
||||
// console.log('forEach img',img)
|
||||
img.classList.add('loading')
|
||||
img.addEventListener('load', function (e) {
|
||||
// console.log('img loaded', e)
|
||||
figure.classList.remove('loading')
|
||||
figure.classList.add('loaded')
|
||||
})
|
||||
img.addEventListener('error', function (e) {
|
||||
console.error('img ERROR', figure, e)
|
||||
})
|
||||
const src = img.getAttribute('data-src')
|
||||
|
||||
// for debug purpose
|
||||
console.log(figures.length, index)
|
||||
// let src = img.getAttribute('data-src')
|
||||
// if (index > 0 && index < figures.length - 1) {
|
||||
// src = img.getAttribute('data-src').replace('?', '/bad?')
|
||||
// }
|
||||
|
||||
img.setAttribute('src', src)
|
||||
// img.removeAttribute('data-src')
|
||||
// img.classList.remove('lazy')
|
||||
})
|
||||
}, { once: true })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue