Javascript魔术:我编辑是为了我自己的目的,所以不要为此生气

Javascript魔术:我编辑是为了我自己的目的,所以不要为此生气,javascript,Javascript,这段代码从网页中提取所有图像,并将它们旋转成一个圆圈。真的让任何页面变得赤裸裸(没有图片)。最好的测试地点是一个有很多图片的网站。(以谷歌图片为例)。只需将这些代码放在任何网站的url上,例如说goggle,记住你需要手动键入“javascript: javascript:R=0; x1=0.1;y1=0.05; x2=0.25;y2=.24; x3=1.6;y3=0.24; x4=300;y4=200; x5=300;y5=200; DI=document.getElementsByTagNa

这段代码从网页中提取所有图像,并将它们旋转成一个圆圈。真的让任何页面变得赤裸裸(没有图片)。最好的测试地点是一个有很多图片的网站。(以谷歌图片为例)。只需将这些代码放在任何网站的url上,例如说goggle,记住你需要手动键入“javascript:

javascript:R=0;
x1=0.1;y1=0.05;
x2=0.25;y2=.24;
x3=1.6;y3=0.24;
x4=300;y4=200;
x5=300;y5=200;
DI=document.getElementsByTagName(“img”);
DIL=DI.长度;
函数A(){for(i=0;i-DIL;i++)//等于for(i=0;i
当返回undefined时,浏览器将读取该内容,并且不会将其从 当前页。如果未放置,它将重定向到下一个空白页。因此,它是强制的。此外,u可以将表达式传递到void(exp here),它将被评估没有问题,但要记住的主要事情是它总是返回未定义的,这对于浏览器来说是必要的。还记得javascript:是一个类似于http的uri模式:所以你知道什么时候知道要放置到url浏览器的地址,即使它不存在。在javascript:模式中,浏览器执行javascript代码并将其写入新页面。uri末尾的void运算符返回未定义的代码,如void(exp)/void exp返回未定义的代码,该代码将被执行并阻止浏览器执行默认操作

如果仔细查看上面的代码,它会旋转HTML“img”标记。只需将其替换为“a”或“p”,并观看一些链接或文本旋转,而不是图像。但有人能解释代码中实际发生的情况吗?还有“javascript:”关键字实际起什么作用


在超文本的href attribute文档中,它使用http方案。其他时候,我们可以使用javascript:scheme

有两个部分需要注意:

setInterval('A()', 5);
这将每隔
5
毫秒执行
A
功能

function A(){
    for(i=0; i-DIL; i++) { 
        DIS = DI[i].style;
        DIS.position = 'absolute';
        DIS.left = (Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; 
        DIS.top = (Math.cos(R*y1+i*y2+y3)*y4+y5)+"px";
    }
    R++;
}
此函数循环遍历找到的每个元素,将其位置设置为绝对(无需反复执行此操作),然后调整其
left
top
值,从而在视口中的新位置每隔5毫秒重新绘制一次


如果你的困惑在于如何确定每个元素的下一个位置,那么这些问题就有一个答案。

它只是每隔5毫秒循环一次图像,然后用这两个方程式将它们移动一圈。你对哪一部分感到困惑?我不想听起来毫无帮助,但这很简单。你必须更具体地回答你的问题,不要说“我不明白,告诉我为什么它会起作用”先生,如果在脚本末尾没有放置void(0),会发生什么?如何防止样式属性反复设置为绝对
function A(){
    for(i=0; i-DIL; i++) { 
        DIS = DI[i].style;
        DIS.position = 'absolute';
        DIS.left = (Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; 
        DIS.top = (Math.cos(R*y1+i*y2+y3)*y4+y5)+"px";
    }
    R++;
}