如何停止预加载javascript数组的图像
我正在尝试建立一个移动图像库 我已将图像存储到数组(照片数组)中 它工作正常,只是它正在预加载阵列的所有图像。我不想预加载图像,只有在调用函数forward或backward后才开始加载图像 我已经在UC browse和google chrome中尝试了这些代码。在UC浏览器中,它不会预加载图像,但在chrome浏览器中会预加载图像 视图代码 Javascript如何停止预加载javascript数组的图像,javascript,html,arrays,Javascript,Html,Arrays,我正在尝试建立一个移动图像库 我已将图像存储到数组(照片数组)中 它工作正常,只是它正在预加载阵列的所有图像。我不想预加载图像,只有在调用函数forward或backward后才开始加载图像 我已经在UC browse和google chrome中尝试了这些代码。在UC浏览器中,它不会预加载图像,但在chrome浏览器中会预加载图像 视图代码 Javascript 函数setImage(imageURL){ document.getElementById('myimage').style.di
函数setImage(imageURL){
document.getElementById('myimage').style.display='none';
document.getElementById('limg').style.display='block';
document.images.myimage.src=imageURL;setTimeout('doWhileLoading()',100);
}
函数doWhileLoading(){
if(document.images.myimage.complete){
document.getElementById('myimage').style.display='block';
document.getElementById('limg').style.display='none';
}否则{
setTimeout('doWhileLoading()',100);
}
}
函数forward(){
如果(which1){
其中--;
setImage(照片[其中]);
}
}
HTML
请在问题中插入代码,外部来源可能会被移动、删除,使问题与进一步讨论无关reading@Kaiido好的,我将代码从外部链接移到问题。我建议您重新开始。其中是定义的。为什么当用户单击“前进”或“后退”时,会触发setTimeout以每秒更改图像10次?你到底想做什么?你甚至没有定义任何数组,document.images
是文档中img
的HTML集合;因为您填充了img
元素,所以它们当然会被加载。“Which”值是一个整数值,我使用php get从url中获取
<script>
function setImage(imageURL){
document.getElementById('myimage').style.display='none';
document.getElementById('limg').style.display='block';
document.images.myimage.src=imageURL; setTimeout('doWhileLoading()',100);
}
function doWhileLoading(){
if(document.images.myimage.complete){
document.getElementById('myimage').style.display='block';
document.getElementById('limg').style.display='none';
} else{
setTimeout('doWhileLoading()',100);
}
}
function forward(){
if(which<photos.length-1){
which++;
setImage(photos[which]);
}
}
function backward(){
if(which>1){
which--;
setImage(photos[which]);
}
}
</script>
<div id='load'>
<img src='files/971220/load1.gif'id='limg'><img src='mk1.jpg'name='myimage'id='myimage'>
</div>
<a href='#'onclick='backward();return false'>prev</a>
<a href='#'onclick='forward();return false'>next</a>