Cómo usar js para lograr un efecto deslizante
La siguiente es una implementación de código js simple: solo como referencia:
ltstyle gt
#div1{? Ancho: 100px;? Alto: 100 px;? Fondo: rojo;? Posición: Absoluta;? Izquierda: 0px? arriba: 0; }
lt/estilo gt;
lt script gt
ventana.onload=función(){
var ? oDiv = documento. getelementbyid('div 1');
var? iSpeedX = 0;
var? iVelocidadY = 0;?
var? últimoX = 0;
var? últimoY = 0;
var? temporizador = nulo?
Evento de pulsación del ratón de Odiv. onmousedown = function (ev) {//div calcula principalmente la posición actual del mouse y su posición de movimiento. Esto calcula la velocidad de movimiento del mouse.
var? oEvento=ev? ||?Evento;
var? disX = OE ventilación. clientx-odiv .desplazamiento izquierdo;
var? disY = OE vent . clienty-odiv . offsettop;
clearInterval(timer);
documento . //Evento de arrastre del mouse. ?
var? oEvento=ev? ||?evento;?
estilo odiv .izquierda = ventilación OE.clientex-disX 'px';
iSpeedX = ventilación OE. clientex-últimoX;
iSpeedY = ventilación OE.
lastX = oEvent.clientX
lastY = oEvent.clientY
}
Documentación. onmouseup = function(){// Cuando se levanta el mouse, borra el evento de movimiento.
document.onmousemove = nulo
document.onmouseup = nulo?
oDiv.releaseCapture? amperio amperio? odiv . liberar captura();
iniciar movimiento();
}
oDiv.setCapture? amperio amperio? odiv.set capture();
¿Volver? Falso;?
}?
¿Función? StartMove(){// función de movimiento, la operación principal es calcular la velocidad y dirección del movimiento del mouse.
clearInterval(temporizador);
timer=setInterval(función(){
iSpeedY = 3;
var?t = odiv . offsettop es peedy;
var? l = odiv . offset left
if(t gt;document . document element . client height-odiv . offset height){< / p>
t = documento. elemento del documento. altura del cliente-odiv.
iSpeedY * =-0.8
iSpeedX * = 0.8
< p; >}?if(t lt; 0){
t = 0;
iSpeedY * =-0.8
iSpeedX; * = 0.8
}
if (l gtdocument. elemento del documento. ancho del cliente-odiv. ancho de desplazamiento){
l = ancho del documento del cliente -. odiv ancho de desplazamiento;?
iSpeedX * = -0,8
iSpeedY * = 0,8
}
if(l lt; 0 ){
l = 0;
iSpeedX * =-0.8;
iSpeedY * = 0.8
}
estilo odiv . izquierda = l ' px ';
estilo odiv . iSpeedX = 0;
if(math. ABS(iSpeedY) lt; 1)iSpeedY = 0
if(iSpeedX==0? amp amp?iSpeedY==0? amp amp? t = = documento. elemento del documento. altura del cliente-odiv. altura de desplazamiento){
clearInterval(timer);
}
documento. yo;
}, 30);?
}
};
lt/script gt
lt/head gt
ltbody gt;
ltdiv? id="div1 " > lt/div gt;
lt/cuerpo