gpt4 book ai didi

javascript - 如何添加链接到这个 javascript 图像旋转器?

转载 作者:行者123 更新时间:2023-11-29 19:51:04 25 4
gpt4 key购买 nike

这是当前可用的 javascript 图像旋转器。相信它最初是用 Dreamweaver 创建的。继承项目。

试图弄清楚如何将链接添加到以下功能。只有 3 张图片被使用,每张图片都需要一个单独的链接。提前致谢!

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2]; x.onclick=function(){window.location.href=a[i+3]}; }
}
// Comma separated list of images to rotate
var imgs = new Array('images/swap1.jpg','images/swap2.jpg','images/swap3.jpg');
imgLinks = new Array('http://example.com','http://scifit.com/proseries/proseries.shtml','http://example.com');
// delay in milliseconds between image swaps 1000 = 1 second
var delay = 8000;
var counter = 0;

function preloadImgs(){
for(var i=0;i<imgs.length;i++){
MM_preloadImages(imgs[i]);
}
}

function randomImages(){
if(counter == (imgs.length)){
counter = 0;
}
MM_swapImage('rotator', '', imgs[counter++]);
setTimeout('randomImages()', delay);
}

最佳答案

更新的答案:请改用此代码。我重写了我原来的答案,因为它有一些问题。将整个 Dreamweaver 插入的代码替换为:

function MM_preloadImages() { //v3.0
var d=document;
if(d.images){
if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){
d.MM_p[j]=new Image;
d.MM_p[j++].src=a[i];
}
}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr;
for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x;
if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);
}
if(!(x=d[n])&&d.all) x=d.all[n];
for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n);
return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments;
document.MM_sr=new Array;
for(i=0;i<(a.length-2);i+=3) {
console.log(a);
if ((x=MM_findObj(a[i]))!=null){
document.MM_sr[j++]=x;
if(!x.oSrc) x.oSrc=x.src;
x.src=a[i+2];
x.onclick=function(){
window.location.href=a[i];
};
}
}
}
// Comma separated list of images to rotate
var imgs = new Array('images/swap1.jpg','images/swap2.jpg','images/swap3.jpg');
imgLinks = new Array('http://scifit.com/proseries/proseries.shtml','http://scifit.com/proseries/proseries.shtml','http://scifit.com/proseries/proseries.shtml');
// delay in milliseconds between image swaps 1000 = 1 second
var delay = 8000;
var counter = 0;

function preloadImgs(){
for(var i=0;i<imgs.length;i++){
MM_preloadImages(imgs[i]);
}
}

function randomImages(){
if(counter == (imgs.length)){
counter = -1;
}
counter++;
MM_swapImage('rotator', '', imgs[counter], imgLinks[counter]);
setTimeout('randomImages()', delay);
}

然后,在您的 BODY 标签中,您可能会看到如下内容:

<body onload="preloadImgs() ...

改成这样:

<body onload="preloadImgs();randomImages();">

这将强制第一次调用 randomImages ,这会导致初始图像受 MM_swapImage 中完成的工作的约束.你得到 undefined 的原因URLs 是因为在我的这行代码中:

x.onclick=function(){ ...

我正在调用 a[i+3]当我应该调用a[i] .


从语义的 Angular 来看,这绝不是一个很好的答案,但它确实有效。

关于javascript - 如何添加链接到这个 javascript 图像旋转器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com