- 35
- 0
问题描述
这是一个子组件 实现的功能是轮播图
我在mounted组件里延迟20毫秒去初始化某些动作但初始化动作的前提要求下是第一张图片已经加载完成了。
现在的问题是图片还没加载完成就执行了setTimeout
相关代码
这是一个子组件
<template>
<div class="slider" ref="slider">
<div class="slider-group" ref="sliderGroup">
<div class="slider-item" v-for="(item,index) in list" :key="index" >
<a @click.stop="item.onClick">
<img :src="item.img" :alt="item.img" :style="`width:${width}`" ref="sliderItemImg">
</a>
</div>
</div>
<div class="dots" v-if="this.dots">
<span :class="`dot ${index === currentPageIndex ? 'active' :'' }`" v-for="(item,index) in list.length" :key="index"></span>
</div>
</div>
</template>
<script>
import BScroll from "better-scroll";
export default {
props: {
// 图片宽度
width: {
type: String,
default: "100%"
},
// 数据列表
list: {
type: Array,
default: []
},
// 循环轮播
loop: {
type: Boolean,
default: true
},
// 是否自动轮播
autoPlay: {
type: Boolean,
default: true
},
// 轮播间隔
speed: {
type: Number,
default: 3000
},
// 是否需要 dots
dots: {
type: Boolean,
default: true
}
},
data() {
return {
currentPageIndex: 0,
_slider: null,
_timer: null
};
},
mounted() {
const _this = this;
_this.tmpTimer = setTimeout(() => {
console.log()
}, 20);
},
尝试过的解决方案:
1、加大setTimeout时间(不够智能)
2、<img :src="item.img" :alt="item.img" :style="width:${width}" ref="sliderItemImg" @onload="function"> 给img属性加上onload事件 无效没有执行绑定的function
期待结果
因为list 是个数组里面存储的可能是多张图 , 如何能够在第一张图加载完成之后再去初始化动作
- 共 0 条
- 全部回答
-
名字什么不重要 普通会员 1楼
在Vue中,你可以使用
async/await语法来监听图片是否加载完成。以下是一个简单的示例:```javascript import Vue from 'vue' import axios from 'axios'
export default { data() { return { imageLoad: false } }, mounted() { this.$axios.get('/your-image-url') .then(response => { this.imageLoad = true }) .catch(error => { this.imageLoad = false }) } } ```
在这个示例中,我们首先导入了Vue和axios模块。然后,我们定义了一个数据属性
imageLoad,初始值为false。在
mounted生命周期钩子中,我们使用$axios.get方法发送一个GET请求到指定的URL。这个请求的then方法中,我们检查请求是否成功。如果请求成功,我们就将imageLoad属性设置为true。如果请求失败,我们就将imageLoad属性设置为false。这个方法将在图片加载完成后立即触发,因为Vue的
mounted生命周期钩子会在图片加载完成之前就开始执行。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
