简体   繁体   English

如何通过单击按钮使6张图像作为gif播放(找不到我的代码中缺少的内容)

[英]How can I make 6 images play as a gif with an on click button (Can't find whats missing in my code)

So I'm trying to get an 6 images to play (runner0 - runner5) and then go back to the beginning and so far only the first image and second image appears but the rest aren't playing but are in the same folder. 因此,我尝试播放6张图片(runner0 -runner5),然后返回到开头,到目前为止,仅出现了第一张图片和第二张图片,但其余图片均未播放,但位于同一文件夹中。 I was told to use getElementById(), getElementsByName(), or getElementsByTagName(). 有人告诉我使用getElementById(),getElementsByName()或getElementsByTagName()。 But how would i implement those? 但是我将如何实施这些?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Project 10 11 Sample</title>
<script type="text/javascript">
<!-- HIDE FROM INCOMPATIBLE BROWSERS
var curPennant = 1;
var begin;
pennant1 = new Image();
pennant1.src = "runner0.jpg";
pennant2 = new Image();
pennant2.src = "runner1.jpg";
pennant3 = new Image();
pennant3.src = "runner2.jpg";
pennant4 = new Image();
pennant4.src = "runner3.jpg";
pennant5 = new Image();
pennant5.src = "runner4.jpg";
pennant6 = new Image();
Pennant6.src = "runner5.jpg";



function wave() {
        if (curPennant == 1) {
                document.images[0].src = pennant2.src;
                curPennant = 2;


        }
        else {
                document.images[0].src = pennant1.src;
                curPennant = 1;
        }
}
function startWaving() {
        if (begin)
                clearInterval(begin);
        begin = setInterval("wave()",500);
}
// STOP HIDING FROM INCOMPATIBLE BROWSERS -->
</script>
</head>
<body>
<p>
<img alt="" height="132" src="runner0.jpg" width="107" /></p>
<p><input type="button" value=" Wave"
onclick="startWaving();" /><input type="button" name="stop"
value=" Stop" onclick="clearInterval(begin);" /></p>
</body>
</html>

The easiest way would be to use an array and loop through it. 最简单的方法是使用数组并遍历整个数组。 First instantiate an array and add all your images to it, which is very easy because you named them with same names and ascending numbers. 首先实例化一个数组,然后将所有图像添加到其中,这非常简单,因为您使用相同的名称和升序命名它们。
So instead of: 所以代替:

var curPennant = 1;
pennant1 = new Image();
pennant1.src = "runner0.jpg";
pennant2 = new Image();
pennant2.src = "runner1.jpg";
pennant3 = new Image();
pennant3.src = "runner2.jpg";
pennant4 = new Image();
pennant4.src = "runner3.jpg";
pennant5 = new Image();
pennant5.src = "runner4.jpg";
pennant6 = new Image();
Pennant6.src = "runner5.jpg";

say: 说:

var current = 0;
var imageArray = [];
for(i = 0; i < 6; i++){
    var img = new Image();
    img.src = "runner"+i+".jpg";
    imageArray.push(img);
}

and in your function wave use: 并在您的功能wave使用:

function wave(){
    document.images[0].src = imageArray[current++%imageArray.length].src;
}

If you just need the source names and don't need the Images (pennant1 and so on) for anything else, you could even simplify it more: 如果您只需要源名称,而不需要图像(pennant1等),则可以进一步简化它:

var current = 0;
var imageArray = [];
for(i = 0; i < 6; i++){
    imageArray.push("runner"+i+".jpg");
}

and

function wave(){
    document.images[0].src = imageArray[current++%imageArray.length];
}

NOTE: You also set the interval with: 注意:您还可以设置间隔:

begin = setInterval(wave, 500);

working fiddle (i just set the file name as content of a paragraph, instead you need to assign it as the source of your image) 有用的小提琴 (我只是将文件名设置为段落的内容,而是需要将其分配为图像的来源)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我已经盯着我的代码几个小时了,找不到它出了什么问题。 -Javascript - I've been staring at my code for hours and can't find whats wrong with it. - Javascript 我怎样才能播放像 9 gag 这样的 gif? - How can i play a gif like 9 gag? 如何使按钮更改图像? - How can I make a button change images? 如何使我自己的切换暂停/播放按钮与我的视频一起使用? - how can i make my own toggle pause/play button work with my video? 当我单击Modal pop Extender中的按钮时,无法显示更新进度GIF图像 - Update Progress GIF Image Can't be displayed when i click on a button in Modal pop Extender 如何更改 HTML5 音频中的播放/按钮图像? - How can I change play/button images in HTML5 audio? 如何在每个页面刷新/加载时进行“循环一次”动画GIF背景播放? - How can I make a “loop once” animated GIF background play on every page refresh/load? 在JavaScript处理期间(冻结),如何继续播放GIF? - How can I continue to play my GIF during JavaScript processing (as it freezes)? 如何使用jQuery打开视频并在.click上播放? - How can I make a video open and play on a .click with jQuery? 我的点击事件功能在某些情况下停止工作,我无法找到此代码失败的位置 - My click event function stop working for some cases and I can't find where do this code fails
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM