Упрощена реализация Image. Возможна проблема со слишком быстрой загрузкой изображения перед тем как сработал addEventListener.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<img
|
<img
|
||||||
bind:this={node}
|
onload={() => loaded = true}
|
||||||
class:loaded
|
class:loaded
|
||||||
class="noscript-visible"
|
class="noscript-visible"
|
||||||
{loading}
|
{loading}
|
||||||
@@ -20,20 +20,7 @@
|
|||||||
...others
|
...others
|
||||||
} = $props()
|
} = $props()
|
||||||
|
|
||||||
let node = $state()
|
|
||||||
let loaded = $state(false)
|
let loaded = $state(false)
|
||||||
|
|
||||||
$effect(() => {
|
|
||||||
if (!node) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (node.complete) {
|
|
||||||
loaded = true
|
|
||||||
} else {
|
|
||||||
node.addEventListener('load', () => loaded = true, { once: true })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
Reference in New Issue
Block a user