Autor Tema: [Duda] Efecto de Movimiento?  (Leído 3274 veces)

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
[Duda] Efecto de Movimiento?
« en: 10 de Julio de 2010, 02:49:07 am »
Buenas.. tengo una duda..
E visto algunas webs que tienen una imagen que sube y baja consecutivamente de forma automatica...

Como se llama eso? D:
Saludos...

Otra cosa que les quería preguntar...
Es posible que por medio de una función... al activarse dicha función mande una imagen en forma vertical de dirección hacia arriba? Y al salir de la pantalla del navegador se destruya dicha imagen?

Gracias...
Twitter: @JoakoM010



Comunidad PHPeros

[Duda] Efecto de Movimiento?
« en: 10 de Julio de 2010, 02:49:07 am »

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Duda] Efecto de Movimiento?
« Respuesta #1 en: 10 de Julio de 2010, 09:56:44 am »
Claro, todo eso se hace con jQuery, averigua un poco sobre la función animate() de dicho famework y verás lo fácil que es manejar (se puede alterar el tamaño, cambiar de posición, etcétera...) ;)

Saludos ^^
- Moderador de PHP


Desconectado OmaarV

  • PHPero Avanzado
  • ****
  • Mensajes: 304
  • Karma: 20
  • Sexo: Masculino
  • OmarVega
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #2 en: 10 de Julio de 2010, 11:25:52 am »
Claro que se puede con jQuery, lo aprendi todo en My Holy Bible jQuery pero te lo explico mañana que ahora a las 3:30 de la mañana no lo creo.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #3 en: 11 de Julio de 2010, 02:08:48 am »
Lo que quiero es...

Agarrar las coordenadas x, y de una imagen, Es fácil hacerlo ya que es tomando el dato por la id..
pero necesito hacer que otra imagen (la que se moverá hacia arriba) salga de la posición "x" de la otra imagen y que de la "y" salga un poquito mas arriba que la "y" actual.   Y que haga un movimiento vertical hacia arriba, cuando salga del marco de la pantalla se elimine.

Alguna idea? :S
Twitter: @JoakoM010



Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #4 en: 11 de Julio de 2010, 02:54:20 am »
Sorry el doble post.. pero encontré esto :S
Código: [Seleccionar]
<script language="javascript">
    var velocidad=2;
    var posicion=-1;
    function marquesina(){
        var anchopanta=window.document.body.clientHeight;
        posicion=posicion-velocidad;
        texto.style.top=posicion;
       
        if(posicion<=0){
            posicion=anchopanta;
        };
       
        window.status=posicion;
        setTimeout('marquesina()',20);
    };
</script>
</HEAD>

<BODY onLoad="marquesina();">
<div id="texto" style="top:10; left:0; position:absolute;">Lalalalalalalalala</div>
</BODY>

Lo que necesito ahora es:
Que el texto salga en la posición "x" de una imagen cuya id es "img", y de de la posición "y" de la misma imagen de la id de "img" pero un poco mas arriba... Para eso tendría que restar el "y" de "img" menos un resultado cualquiera... por ejemplo "100"
Y después que llegue a su limite... (que note que hay un if())

Código: [Seleccionar]
       
if(posicion<=0){
......
        };

Se "elimine" el texto o vuelva a su posición inicial pero invisible... para después mediante un botón que llame la función vuelva a ejecutar la acción.

Tener en cuenta que la función se ejecutara con un link..
Ejemplo..
<a onclick="funcion();">lalala</a>

Me ayudan ? :S

Twitter: @JoakoM010



Desconectado OmaarV

  • PHPero Avanzado
  • ****
  • Mensajes: 304
  • Karma: 20
  • Sexo: Masculino
  • OmarVega
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #5 en: 12 de Julio de 2010, 03:47:59 am »
Código: [Seleccionar]
<script type="text/javascript">
$(document).ready(function (){
//Aqui asignamos el click al elemento <a>
$("a").click(function (){
$("div").animate({width:200, height:200}, "slow");
$("div").animate({top:60, left:100}, "slow");
$("div").animate({width:300, height:300}, "slow");
$("div").animate({top:20, left:50}, "slow");
$("div").animate({width:100, height:100}, "slow");
$("div").animate({top:0, left:0}, "slow");
$("div").animate({width:400, height:400}, "slow");
});
});
</script>

Prueba algo como eso y me dices si es algo asi

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #6 en: 12 de Julio de 2010, 13:59:49 pm »
Código: [Seleccionar]
<script type="text/javascript">
$(document).ready(function (){
//Aqui asignamos el click al elemento <a>
$("a").click(function (){
$("div").animate({width:200, height:200}, "slow");
$("div").animate({top:60, left:100}, "slow");
$("div").animate({width:300, height:300}, "slow");
$("div").animate({top:20, left:50}, "slow");
$("div").animate({width:100, height:100}, "slow");
$("div").animate({top:0, left:0}, "slow");
$("div").animate({width:400, height:400}, "slow");
});
});
</script>

Prueba algo como eso y me dices si es algo asi
Creo que debería usarse el callback de animate() porque si no pasaría todo a la vez...

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #7 en: 12 de Julio de 2010, 17:48:31 pm »
Código: [Seleccionar]
<script type="text/javascript">
$(document).ready(function (){
//Aqui asignamos el click al elemento <a>
$("a").click(function (){
$("div").animate({width:200, height:200}, "slow");
$("div").animate({top:60, left:100}, "slow");
$("div").animate({width:300, height:300}, "slow");
$("div").animate({top:20, left:50}, "slow");
$("div").animate({width:100, height:100}, "slow");
$("div").animate({top:0, left:0}, "slow");
$("div").animate({width:400, height:400}, "slow");
});
});
</script>

Prueba algo como eso y me dices si es algo asi

Ami me parece... Que soy un bruto que no entendió...
Se usa obligatoria mente animate()?

Creo que debería usarse el callback de animate() porque si no pasaría todo a la vez...

Eh?
Ya me perdí...
Twitter: @JoakoM010



Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #8 en: 12 de Julio de 2010, 18:20:59 pm »
No tienes que usar obligatoriamente animate, pero es muy sencillo si lo usas.
La sintaxis es animate(opciones, velocidad, easing, callback)
opciones es un objeto (los objetos se hacen {algo:'pepe',algo2:'juan'}) que se va a ejecutar, por ejemplo, para subir un div 50px, podriamos usar {'top':'-=50px'} y restaria 50px al top (poco a poco) para subirlo
La velocidad es el tiempo que tarda en hacerlo, puedes usar slow, fast o normal o definir el tiempo en milisegundos.

Easing es un efecto, puede dejarse como null (o no ponerlo) para ignorarlo

El callback, es una funcion que se ejecuta al acabar la animacion, así cuando una acabe se ejecuta inmediatamente otra, por ejemplo:
$('div#midiv').animate({top:'-=50px'}, 500, null, function() { $('div#midiv').animate({left:'+=50px'}, 500); } );
Esto movería el div 50 pixeles arriba y LUEGO 50 a la derecha
Para hacerlo al mismo tiempo usarías sencillamente
$('div#midiv').animate({top:'-=50px','left:'+=50px'}, 500);

Depende que quieras hacer, de todas maneras si no te quedó claro puedes ver la documentacion de animate http://api.jquery.com/animate/

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #9 en: 13 de Julio de 2010, 00:50:41 am »
No tienes que usar obligatoriamente animate, pero es muy sencillo si lo usas.
La sintaxis es animate(opciones, velocidad, easing, callback)
opciones es un objeto (los objetos se hacen {algo:'pepe',algo2:'juan'}) que se va a ejecutar, por ejemplo, para subir un div 50px, podriamos usar {'top':'-=50px'} y restaria 50px al top (poco a poco) para subirlo
La velocidad es el tiempo que tarda en hacerlo, puedes usar slow, fast o normal o definir el tiempo en milisegundos.

Easing es un efecto, puede dejarse como null (o no ponerlo) para ignorarlo

El callback, es una funcion que se ejecuta al acabar la animacion, así cuando una acabe se ejecuta inmediatamente otra, por ejemplo:
$('div#midiv').animate({top:'-=50px'}, 500, null, function() { $('div#midiv').animate({left:'+=50px'}, 500); } );
Esto movería el div 50 pixeles arriba y LUEGO 50 a la derecha
Para hacerlo al mismo tiempo usarías sencillamente
$('div#midiv').animate({top:'-=50px','left:'+=50px'}, 500);

Depende que quieras hacer, de todas maneras si no te quedó claro puedes ver la documentacion de animate http://api.jquery.com/animate/

Mmm y... Si lo quiero hacer como función?
Es decir... yo hago un SeTimeout con una cantidad en mili segundos... cada x mili segundos se cumple una función :S
Como le puedo agregar un SeTimeout?

Tengo este código...
Código: [Seleccionar]
<script>
$("#accion").click(function(){
  $(".mensaje").animate({"top": "-=50px"}, "slow");
});

    </script>

Lo que hace es que va subiendo poco a poco.. Por los momentos esta con un boton:
Código: [Seleccionar]
<button id="accion">&raquo;</button>
Pero lo que necesito es hacer como que... un tiempo, cada "x" mili segundos se cumpla el animate() como cuando le das click al botón...

Y.. En verdad gracias west.. Ten por seguro que si me ayudas a  resolver esta duda te llevas por lo menos 2 karmas..
Eres el único junto con OmaarV que por lo menos responde...

Saludos.
Twitter: @JoakoM010



Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #10 en: 13 de Julio de 2010, 02:13:45 am »
A ver, tu quieres que al hacer click al botón, cada X tiempo se haga un animate, ¿no?
Si es así, podrias hacer:
Código: [Seleccionar]
$('#accion').click(function() {
setInterval('subir()', X); // donde X son los milisegundos
});
function subir() {
// animate
}

Si lo que quieres es que suba de a poco, tal y como está está correcto :P

Si no es ninguna, explicate mejor :S

PD: A la hora de usar selectores de clase (.algo) utiliza la etiqueta que lleva la clase, es mucho mas rapido, por ejemplo $('div.mensaje'), y a ser posible, por ID

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #11 en: 13 de Julio de 2010, 19:45:20 pm »
A ver, tu quieres que al hacer click al botón, cada X tiempo se haga un animate, ¿no?
Si es así, podrias hacer:
Código: [Seleccionar]
$('#accion').click(function() {
setInterval('subir()', X); // donde X son los milisegundos
});
function subir() {
// animate
}

Si lo que quieres es que suba de a poco, tal y como está está correcto :P

Si no es ninguna, explicate mejor :S

PD: A la hora de usar selectores de clase (.algo) utiliza la etiqueta que lleva la clase, es mucho mas rapido, por ejemplo $('div.mensaje'), y a ser posible, por ID

Una pregunta west...
El:
Código: [Seleccionar]
$('#accion').click(function() {El $('#accion') es indiferente si lo puedo expresar con una id?

Ejemplo:
Código: [Seleccionar]
document.getElementById("accion").click(function() {
Estaría bien de esa forma? Y en vez de asignarle una clase le asigno una id?
Saludos.

PD: Creo que es indiferente pero me e acostumbrado mas a la id xD
Twitter: @JoakoM010



Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #12 en: 13 de Julio de 2010, 20:57:30 pm »
# indica una id...
$('#accion') = document.getElementById('accion');
pero si usas document.get... no funcionará con jQuery

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Duda] Efecto de Movimiento?
« Respuesta #13 en: 13 de Julio de 2010, 22:49:13 pm »
# indica una id...
$('#accion') = document.getElementById('accion');
pero si usas document.get... no funcionará con jQuery

Te amo  :D
Ok .. Ya ise el movimiento que quería...
Ahora necesito que ese movimiento se haga a partir de las coordenadas x, y de otro cuya id es "img"...

¿Alguna idea para eso?
Por sierto...
Ya te doy el primer karma...
k+
Twitter: @JoakoM010



Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] Efecto de Movimiento?
« Respuesta #14 en: 13 de Julio de 2010, 23:27:58 pm »
Pues eso con left y top... para sacar la posicion podrías usar funciones de jquery como position() u offset(), tienen ligeras diferencias que debes tener en cuenta, position retorna la posición respecto al elemento padre; offset respecto a la página; no se si me entiendes... tambien puedes usar offset({top:10,left:10}) para mover un objeto a unas coordenadas...

Te dejo los links a la documentación por si tienes alguna duda, o si no publicas aquí mismo ;)

http://api.jquery.com/position/
http://api.jquery.com/offset/