由此link 我改成了这个:
<html>
<head>
<script>
var toggleimage=new Array("p1.gif","p.gif")
//do not edit the variables below
var image_1=new Image()
var image_2=new Image()
image_1.src=toggleimage[0]
image_2.src=toggleimage[1]
var i_image=0
function testloading() {
isloaded=true
}
function toggle() {
if (isloaded) {
document.togglepicture.src=toggleimage[i_image]
}
i_image++
if (i_image>1) {i_image=0}
}
onload=testloading
</script>
<title>
</title>
<meta content="">
<style></style>
</head>
<body>
<a href="javascript:toggle()"><img name="togglepicture" src="p1.gif" border="0"></a>
</body>
</html>
当我点击图像p时,它会显示p1,反之亦然 现在我有问题图片有一个名字:
<a href="javascript:toggle()"><img name="togglepicture" src="p1.gif" border="0"></a>
它将在此处获得名称:
document.togglepicture.src=toggleimage[i_image]
我想要有很多图像,所以我需要将togglepicture更改为变量 例如:
function toggle(a) {
if (isloaded) {
document.a.src=toggleimage[i_image]
}
i_image++
if (i_image>1) {i_image=0}
}
并且对于输入例如它将是切换('nameofimage')并且在href中它将类似于
<a href="javascript:toggle('pic1')">
我没有成功。当我有多张图片要点击时如何使用此功能?
答案 0 :(得分:1)
我制作了一个模块化的toogle,在这里可见:http://jsfiddle.net/Regisc/N7bgz/2/
使用示例:
<img id="image1" src="http://dummyimage.com/50/f00/fff&text=a"
onclick='toogle(this, ["http://dummyimage.com/50/ab0/fff&text=b",
"http://dummyimage.com/50/ab0/fff&text=c"]);' />
答案 1 :(得分:0)
我不完全确定我有你的问题。你在问:
在两张以上的图片之间切换
var toggleimage=new Array("p1.gif","p.gif","p2.gif","p3.gif","p4.gif")
var totalImages=4;
function toggle() {
if (isloaded) {
document.togglepicture.src=toggleimage[i_image]
}
i_image++
if (i_image>totalImages) {i_image=0}
}
如何修改处理多组切换图像的功能?
像这样调用JS函数
<a href="javascript:toggle(this)">
而且,在你的JS函数中,
var id = div.id;
在if-else
中使用它来确定哪个控件称为函数,以及相应的图像数组。
function toggle(div)
{
var id = div.id;
if (isloaded)
{
if (id == 'myFirstToggleImageControl')
{
document.togglepicture.src=toggleimage[i_image];
}
else if (id == 'mySecondToggleImageControl')
{
document.togglepicture.src=toggleimageSource2[i_image];
}
}
i_image++
if (i_image>1) {i_image=0}
}
注意:您将需要使用独立计数器进行第二次控制。所以,可能是i_image1
和i_image2
答案 2 :(得分:0)
你不能使用
document.a.src=toggleimage[i_image];
改为使用
document.getElementById(a).src=toggleimage[i_image];
您还需要在img元素中添加id
。
答案 3 :(得分:0)
以下内容适用于任何数量的图像 toggleimage 是一个连续的数组。
var toggleimage = ["p1.gif","p.gif"];
var toggle = (function() {
var count = 0;
var len = toggleimage.length;
var el = document.getElementsByName('togglepicture')[0]
return function() {
if (isloaded) {
el.src = toggleimage[count++ % len];
}
};
}());
答案 4 :(得分:0)
<html>
<head>
<script>
// images list (properties name must by equal to id of IMAGE html element)
var imageList={
image1: {
currentIndex:0,
images:["p1.gif","p.gif"]
}
};
// preloading images using closure (additionaly replace image URL's with image objects)
(function() {
for(var p in imageList)if(imageList.hasOwnProperty(p)) {
for(var i=0;i<imageList[p].images.length;i++) {
var img=new Image(),src=imageList[p].images[i];
(imageList[p].images[i]=img).src=src;
}
}
})();
function toogleImage() {
var info=imageList[this.id];
info.currentIndex++;
if(info.currentIndex===info.images.length)info.currentIndex=0;
this.src=info.images[info.currentIndex].src;
}
// setting start images
window.onload=function() {
for(var p in imageList)if(imageList.hasOwnProperty(p)) {
//try{
document.getElementById(p).src=imageList[p].images[0].src;
//}
//catch(ex){}
}
}
</script>
</head>
<body>
<img id="image1" onclick="toogleImage.call(this);"/>
</body>
</html>