解決したいこと
PHPで動的に多くの写真画像が閲覧できるWEBサービスを作っています。
トップページにサーバーより書き出される画像サムネイルに対して、
background-check.js というプラグインを利用して、画像の上に表記される
テキスト情報(写真作品名など)の文字色を、背景画像の色に合わせ
<暗い画像(文字色:白)、明るい画像(文字色:黒)>に変化させておりました。
▼background-check.js
http://www.kennethcachia.com/background-check/
ところが、画像が多くサイトの表示パフォーマンスが悪いので
後からLozad.jsで遅延読込を組み込んだところ、
background-check.js が効かなくなってしまいました。
▼lozad.js
https://github.com/ApoorvSaxena/lozad.js/
JS初心者のため、この場合の解決方法を教えて頂けますと大変助かります。
どうぞよろしくお願いいたします。
該当するソースコード
<!-- html -->
<div class="thumbnail lozad" data-background-image="/images/***.JPG)" style="background-image: url();" >
<span class="thumbnail__title target">***文字情報***</span>
</div>
<div class="thumbnail lozad" data-background-image="/images/***.JPG)" style="background-image: url();" >
<span class="thumbnail__title target">***文字情報***</span>
</div>
<div class="thumbnail lozad" data-background-image="/images/***.JPG)" style="background-image: url();" >
<span class="thumbnail__title target">***文字情報***</span>
</div>
<div class="thumbnail lozad" data-background-image="/images/***.JPG)" style="background-image: url();" >
<span class="thumbnail__title target">***文字情報***</span>
</div>
:
:
<!-- Lozad.js -->
<script src="https://polyfill.io/v2/polyfill.min.js? features=IntersectionObserver"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>
<script>
const observer = lozad();
observer.observe();
</script>
<!-- Background-check.js -->
<script src="/js/background-check.min.js"></script>
<script>
BackgroundCheck.init({
targets: '.target',
});
</script>
Lozad.jsのUsage
Lozad.jsのUsage読んでいくと、以下のようにすると要素の読み込み状態によってその後に任意の処理が書けるようで、
ロード後のloadedで処理ができるとよいと思うのですが、やり方が分かりません。。
<script>
lozad('.lozad', {
loaded: function(el) {
// Custom implementation on a loaded element
el.classList.add('loaded');
}
});
</script>
自分で試したこと
jsの基礎理解ができておらず、トンチンカンかも。申し訳ないです。
<script src="https://polyfill.io/v2/polyfill.min.js? features=IntersectionObserver"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>
<script src="/js/background-check.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const observer = lozad('.lozad', {
// 表示されるときに Background-check を使用する
loaded: function(div) {
BackgroundCheck.init({
targets: '.target',
})
}
})
observer.observe()
})
</script>