Use lozad for lazy image loading
Ref: grouped-emoji-picker
This commit is contained in:
parent
61975244bc
commit
1c8384203c
5 changed files with 26 additions and 2 deletions
|
@ -32,6 +32,7 @@
|
|||
"diff": "3.5.0",
|
||||
"escape-html": "1.0.3",
|
||||
"localforage": "1.10.0",
|
||||
"lozad": "^1.16.0",
|
||||
"parse-link-header": "1.0.1",
|
||||
"phoenix": "1.6.2",
|
||||
"punycode.js": "2.1.0",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { defineAsyncComponent } from 'vue'
|
||||
import Checkbox from '../checkbox/checkbox.vue'
|
||||
import LazyImageContainer from '../../directives/lazy_image_container'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faBoxOpen,
|
||||
|
@ -63,6 +64,9 @@ const EmojiPicker = {
|
|||
StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),
|
||||
Checkbox
|
||||
},
|
||||
directives: {
|
||||
LazyImageContainer
|
||||
},
|
||||
methods: {
|
||||
onStickerUploaded (e) {
|
||||
this.$emit('sticker-uploaded', e)
|
||||
|
@ -183,7 +187,7 @@ const EmojiPicker = {
|
|||
this.showingStickers = value
|
||||
},
|
||||
limitedEmojis (list, groupId) {
|
||||
return list.slice(0, this.loadedCount[groupId])
|
||||
return list // list.slice(0, this.loadedCount[groupId])
|
||||
},
|
||||
filterByKeyword (list, keyword) {
|
||||
return filterByKeyword(list, keyword)
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
</div>
|
||||
<div
|
||||
ref="emoji-groups"
|
||||
v-lazy-image-container
|
||||
class="emoji-groups"
|
||||
:class="groupsScrolledClass"
|
||||
@scroll="onScroll"
|
||||
|
@ -86,7 +87,7 @@
|
|||
<span v-if="!emoji.imageUrl">{{ emoji.replacement }}</span>
|
||||
<img
|
||||
v-else
|
||||
:src="emoji.imageUrl"
|
||||
:data-src="emoji.imageUrl"
|
||||
>
|
||||
</span>
|
||||
<span :ref="'group-end-' + group.id" />
|
||||
|
|
13
src/directives/lazy_image_container.js
Normal file
13
src/directives/lazy_image_container.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
|
||||
import lozad from 'lozad'
|
||||
|
||||
const LazyImageContainer = {
|
||||
inserted (el) {
|
||||
const images = el.querySelectorAll('img')
|
||||
console.log(images.length)
|
||||
el.$observer = lozad(images)
|
||||
el.$observer.observe()
|
||||
}
|
||||
}
|
||||
|
||||
export default LazyImageContainer
|
|
@ -6383,6 +6383,11 @@ lower-case@^1.1.1:
|
|||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
|
||||
|
||||
lozad@^1.16.0:
|
||||
version "1.16.0"
|
||||
resolved "https://registry.yarnpkg.com/lozad/-/lozad-1.16.0.tgz#86ce732c64c69926ccdebb81c8c90bb3735948b4"
|
||||
integrity sha512-JBr9WjvEFeKoyim3svo/gsQPTkgG/mOHJmDctZ/+U9H3ymUuvEkqpn8bdQMFsvTMcyRJrdJkLv0bXqGm0sP72w==
|
||||
|
||||
lru-cache@^4.0.1:
|
||||
version "4.1.5"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
|
||||
|
|
Loading…
Add table
Reference in a new issue