Skip to content

Commit c582a31

Browse files
committed
Fire events on image load & fail.
1 parent fcb6d62 commit c582a31

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/components/vueperslides/vueperslide.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ export default {
5252
5353
this.loading = true
5454
55-
console.log('loading image')
56-
5755
return new Promise((resolve, reject) => {
5856
const img = document.createElement('img')
5957
img.onload = () => {
@@ -64,7 +62,7 @@ export default {
6462
resolve({ image: this.imageSrc, style: ((this.$el.attributes || {}).style || {}).value })
6563
})
6664
}
67-
img.onerror = (this.loading = false) && reject
65+
img.onerror = (this.loading = false) || reject // Always call reject.
6866
img.src = this.image
6967
})
7068
}

src/components/vueperslides/vueperslides.vue

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ export default {
549549
// Load the next visible slides images.
550550
for (let i = 0; i < visibleSlides; i++) {
551551
const slide = this.slides.list[nextSlideGuess + i]
552-
if (slide && !slide.loaded) this.loadSlide(slide)
552+
if (slide && !slide.loaded) this.loadSlide(slide, nextSlideGuess + i)
553553
}
554554
}
555555
}
@@ -668,7 +668,7 @@ export default {
668668
// Load each of the next visible slide images.
669669
for (let i = 0; i < this.conf.visibleSlides; i++) {
670670
const slide = this.slides.list[nextSlide + i]
671-
if (slide && !slide.loaded) this.loadSlide(slide)
671+
if (slide && !slide.loaded) this.loadSlide(slide, nextSlide + i)
672672
}
673673
}
674674
@@ -764,18 +764,19 @@ export default {
764764
if (this.slides.current >= this.slidesCount) this.goToSlide(0, { autoPlaying: true })
765765
},
766766
767-
loadSlide (slide) {
767+
loadSlide (slide, index) {
768+
const failure =
768769
(slide.loadImage() || new Promise(reject => reject))
769770
.then(response => {
770-
console.log('response after loadImage!', response)
771771
const { image, style } = response
772772
slide.loaded = true
773773
slide.image = image
774774
slide.style = style
775-
}, error => {
776-
slide.loaded = false
777-
console.log('error after loadImage!', error)
778-
})
775+
this.$emit('image-loaded', this.getSlideData(index))
776+
}, () => {
777+
slide.loaded = false
778+
this.$emit('image-failed', this.getSlideData(index))
779+
})
779780
},
780781
781782
toggleTouchableOption (isTouchable) {

0 commit comments

Comments
 (0)