Vuejs 2: img.complete 속성을 검출하는 방법
다음과 같은 개체로 이미지 목록을 가져오는 코드가 있습니다.
[
{ src: '/path/to/img.jpg', loaded: false },
...
]
템플릿은 다음과 같이 HTML로 렌더링합니다.
<div
v-for="image in alltheimages"
:key="image.id" >
<transition name="fade" appear>
<img
:src="image.src"
v-show="image.loaded"
@load="image.loaded = true"
/>
</transition>
</div>
이 기능은 페이지를 처음 로드할 때 잘 작동하며 이미지가 로드되는 즉시 사라집니다.
그러나 이미지가 이미 캐시에 로드되어 있는 경우에는 문제가 발생합니다.@load
새것에는 절대 간섭하지 않는다<img>
요소.이러한 상황에서는 DOM img 태그의.complete
VueJs에서는 어떻게 할 수 있을까요?
해봤어요v-show="this.complete || image.loaded"
그렇지만this
을 가리키다window
메서드 호출을 사용하여 호출을 시작한 요소에 참조를 전달할 수 있다고 생각했는데, 그 방법도 찾을 수 없습니다.
모든 이미지를 개별적으로 로드할 수 있습니다.new Image()
, 리스트 엔터를 에 바인드 합니다.load
이벤트 제공 전src
거기서부터 데이터를 갱신해, 로트 코드와 오브젝트 전체가 로드되어 있는 것을 나타냅니다.Vue가 작성하는 DOM 요소를 사용할 수 있는 것이 훨씬 좋습니다.
이 작업은 지시어를 사용하여 수행할 수 있습니다.
<div
v-for="image in alltheimages"
:key="image.id" >
<transition name="fade" appear>
<img
:src="image.src"
v-show="image.loaded"
v-loadedifcomplete="image"
@load="image.loaded = true"
/>
</transition>
</div>
그럼 앱에서.
new Vue({
...
directives: {
loadedifcomplete: function(el, binding) {
if (el.complete) {
binding.value.loaded = true;
}
}
}
...
});
이 방법으로는 운이 없었고, 이미지가 로딩되어 있었지만, vue-onload는 매우 효과가 있었습니다.
main.js에서는 다음과 같이 추가합니다.
import OnLoad from 'vue-onload'
Vue.use(OnLoad);
로딩하는 이미지에는 다음과 같습니다.
<img
class="gallery__image"
v-onload="[image src]"
/>
다음으로 스타일시트에 표시할 css 애니메이션을 추가합니다.
/*loaded state*/
.gallery__image {
opacity: 1;
transition: opacity 1s linear;
}
/*unloaded state*/
.gallery__image[data-src]{
opacity: 0;
}
v-module에서 찾고 있는 기능을 https://vuejs.org/v2/api/#v-module에서 제공할 수 있음
네이티브에 바인드할 수 있습니다.onLoad
원하는 컴포넌트 내의 임의의 메서드를 호출합니다.데모
<div id="app">
<img v-for="num in [1,2,3,4]"
src="http://lorempixel.com/400/200"
:onLoad="onLoadHandler()" />
</div>
new Vue({
el: '#app',
methods: {
onLoadHandler: function() {
alert('hi');
}
}
});
언급URL : https://stackoverflow.com/questions/47984004/vuejs-2-how-to-detect-img-complete-property
'programing' 카테고리의 다른 글
파일 작성 및 수정 날짜/시간을 얻으려면 어떻게 해야 합니까? (0) | 2022.09.18 |
---|---|
2개의 .jar 파일 비교 (0) | 2022.09.18 |
단일 값에 대해 여러 변수가 동일한지 검정하려면 어떻게 해야 합니까? (0) | 2022.09.18 |
Java의 Scanner 클래스를 사용하여 콘솔에서 입력을 읽는 방법은 무엇입니까? (0) | 2022.09.18 |
휴지 상태 주석의 @UniqueConstraint 및 @Column(Unique=true) (0) | 2022.09.15 |