Red de conocimiento informático - Conocimiento sistemático - ¡Solución! ! El texto JS sigue al mouse. Competente en javascript y código fuente jQuery 4-10.

¡Solución! ! El texto JS sigue al mouse. Competente en javascript y código fuente jQuery 4-10.

Debe modificar este código en dos lugares:

Primero, cambie else if (flag == 1 &; & ampDocument.layers) aquí a else, y luego si no es necesario juzgar.

En segundo lugar, var thisspan = eval ("document. span "+I); getelementbyid("intervalo"+I). Estilo;

Además, usar banderas es en realidad redundante, pero causará problemas y eliminará todo el código relacionado directamente.

Parece que su código es muy antiguo y adaptarse a navegadores antiguos es un gran problema. Debería ser más sencillo.

El siguiente es el código de prueba que personalmente puedo ejecutar en FF e IE:

& lthtml & gt

& lthead & gt

& lttitle & gtText sigue al mouse

& ltstyle type="text/css " />

& lt! -

Texto {

Color de fondo: # 004593

}

. spanstyle{

Color: # fff000

Familia de fuentes: "Messenger New";

tamaño de fuente:18px;

Peso de fuente :bold;

Posición: absoluta /*posicionamiento absoluto*/

arriba:-50px;

}

-& gt ;

& lt/style & gt;

& ltscript language = "javascript" & gt

var x, y // en la página Ratón actual; position

var step = 10; //Espaciado de visualización de caracteres. Por motivos de apariencia, si el paso es 0, los caracteres se muestran sin espacios.

var message= "Hoja de estilo en cascada"; //Mostrar cadena siguiendo el mouse.

mensaje = mensaje . split(" "); //Dividimos la cadena en una matriz de caracteres

var xpos = new array()//Almacenamiento x de cada carácter Matriz de posiciones .

for(I = 0;i<message.length;i++) {

xpos[I]=-50;

}

variapos = new array()//Matriz que almacena la posición y de cada carácter.

for(I = 0;i<message.length;i++) {

ypos[I]=-50;

}

for(I = 0;I<message.length;I++) {//Genere dinámicamente etiquetas de intervalo para mostrar cada carácter,

//Utilice caracteres de etiquetas de intervalo Para la conveniencia de usar CSS, puede liberar el posicionamiento absoluto. .

document . write(" & lt; span id = ' span "+I+" ' span style ' >);

document . write(mensaje[I]);

documento .write(mensaje[I]);

p>

documento .write(" </span>);

}

if (documento.capas){

document.captureEvents(events.

MOUSEMOVE);

}

Función handlerMM(e){ //Obtiene la posición del cursor del mouse en la página del evento.

e = e | ventana.evento

x = (documento.capa)? e . pagex:document body .desplazarse hacia la izquierda+e .

y = (document.layer)? e . pagey:document .scroll top+e .

}

Función makenake() {//Reposicionar la posición de cada carácter.

Si (document.all) {//Si es IE.

for(I = mensaje . longitud-1;I>=1;I-) {

xpos[I]= xpos[I-1]+paso;// Determinar el posición del carácter desde el final hasta el principio. Cada carácter es la abscisa + paso de la "historia" del carácter anterior.

//De esta forma, a medida que se mueve el cursor, se genera una onda dinámica. Se puede obtener un efecto de visualización similar.

ypos[I]= ypos[I-1]; // La coordenada vertical es la "coordenada vertical" histórica del personaje anterior, y el último personaje sigue el movimiento del personaje anterior.

}

Xpos[0]=x+step //La posición de las coordenadas del primer carácter sigue al cursor del mouse.

ypos[0]=y

//El algoritmo anterior garantizará que si el cursor del mouse se mueve a una nueva posición, las llamadas continuas a makenake moverán estos caracteres a la nueva posición uno por uno.

//La cadena mostrada por este algoritmo es un poco como un desfile humano.

for(I = 0;i<= mensaje . length-1;i++) {

var thisspan = eval("span"+(i)+".style" ); // Utilice eval para obtener el objeto representado por la cadena según la cadena.

este intervalo . pos left = xpos[I];

este intervalo . postop=ypos[I]; }

En caso contrario {

for(I = mensaje . length-1;i>=1;i-) {

xpos[I]= xpos [I -1]+paso;

ypos[I]= ypos[I-1];

}

xpos[0]= x+paso ;

ypos[0]= y;

for(I = 0;i<= mensaje. longitud-1;i++) {

var este lapso = documento. getelementbyid(" span "+I). estilo;

este intervalo izquierdo = xpos[I];

este intervalo superior = ypos[I];

}

}

Vartimer = settimeout ("makesnake()", 10)//Establece un temporizador de 10 milisegundos para llamar continuamente a makesnake() para actualizar la posición de la cadena mostrada.

}

documento .onmousemove = controlador mm;

& lt/script & gt;

& ltbody onLoad = " hacer serpiente();"& gt

& lt/body & gt;

& lt/html & gt;

p>