Sha256: c037ed9ac38138cfb1b27e06d570b06d37d5a6c60594ca0e4c7e1fe1f0ae2823

Contents?: true

Size: 442 Bytes

Versions: 3

Compression:

Stored size: 442 Bytes

Contents

import { Controller } from "stimulus"

export default class extends Controller {

  connect() {
    if (!this.loaded) {
      this.element.classList.add('transition-opacity', 'duration-500', 'opacity-0')
      this.element.addEventListener("load", this.fadeIn.bind(this))
    }
  }

  fadeIn() {
    this.element.classList.remove('opacity-0')
  }
  
  get loaded() {
    return this.element.complete && this.element.naturalHeight !== 0
  }

}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spina-2.2.0 app/assets/javascripts/spina/controllers/image_fade_in_controller.js
spina-2.1.1 app/assets/javascripts/spina/controllers/image_fade_in_controller.js
spina-2.1.0 app/assets/javascripts/spina/controllers/image_fade_in_controller.js