vue.jsでlazyload

vue.jsでlazyload:

メモ

カスタムディレクティブでlazyloadの処理を定義する

以下を参考に
https://jp.vuejs.org/v2/cookbook/creating-custom-scroll-directives.html

import Vue from 'vue' 
 
Vue.directive('lazyload', { 
  inserted: function (el, binding) { 
    let f = function (evt) { 
      if (window.scrollY + window.innerHeight > el.offsetTop) { 
        el.setAttribute('src', binding.value) 
        window.removeEventListener('scroll', f) 
      } 
    } 
    window.addEventListener('scroll', f) 
    f() 
  } 
}) 
imgタグに設定する

<template> 
  <div> 
    <template v-for="src in imageList"> 
      <img src="~/assets/images/loading.gif" 
        v-lazyload="src" 
      > 
    </template> 
  </div> 
</template> 

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)