Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Efecto aparecer y desaparecer capa

Estas en el tema de Efecto aparecer y desaparecer capa en el foro de Jquery en Foros del Web. Hola, estoy probando a hacer unos botones y que al clickear sobre ellos aparezca una capa lateralmente. Eso me sale bien, el problema que tengo ...
  #1 (permalink)  
Antiguo 25/10/2016, 12:22
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Efecto aparecer y desaparecer capa

Hola,

estoy probando a hacer unos botones y que al clickear sobre ellos aparezca una capa lateralmente. Eso me sale bien, el problema que tengo es que no logro hacer que una vez que la capa está desplegada, el fondo del resto de la página se ponga con un color de fondo y que al clickear sobre cualquier lado se cierre dicha capa. También me gustaría saber si es posible hacer que con unos botones que tienen la misma clase , se pueda abrir la capa con un contenido u otro dependiendo de cuál se clicke. Mi código es:

Código:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		button{
			width: 100px;
			height: 40px;
			line-height: 40px;
			text-align: center;
		}
		.capa{
			width: 30vw;
			height: 100vh;
			position: absolute;
			top: 0;
			right: 0;
			background-color: #eee;
		}
	</style>
</head>
<body>
	<button class="tarea">1</button>
	<button class="tarea">2</button>
	<button class="tarea">3</button>
	<div class="capa">probando</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$('.capa').hide();
    	$('.tarea').click(function() {
        $(".capa").animate({
            width: "toggle"
       });
   });
});
</script>
</body>
</html>
  #2 (permalink)  
Antiguo 25/10/2016, 19:24
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Efecto aparecer y desaparecer capa

Para la capa de fondo puedes agregar otro div <div class="modal-fondo"></div>, ya con su css.
Aparece primero
Código Javascript:
Ver original
  1. var counter = 1;
  2.     if(counter == 1){
  3.         $('.tarea').click(function() {
  4.             $('.modal-fondo').fadeIn();
  5.             $('.capa').fadeOut();
  6.             setTimeout(function(){$(".capa").animate({left: '0'})},150);
  7.             counter = 2;
  8.         });
  9.     }else{
  10.         $('.modal-fondo').click(function(){
  11.             $('.modal-fondo').fadeOut();
  12.             $(".capa").animate({left: '-100%'});
  13.             setTimeout(function(){$(".capa").remove()},150); //Se quita "capa" del documento para que no cause problemas, esto es opcional si no se volviera a abrir, si no es así puedes eliminar esta línea.
  14.             counter = 1;
  15.         });
  16.     }
  #3 (permalink)  
Antiguo 26/10/2016, 17:34
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Efecto aparecer y desaparecer capa

Buenas Silenn,

he estado probando con el código que me has pasado y no me funcionaba, de todos modos, trasteando un buen rato, he logrado hacer que me funcione. El código que he utilizado es (decir que .wrapper es la capa que envuelve a los tres botones):
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('.tarea').click(function() {
  3.         $(".capa").animate({
  4.             width: "show"
  5.         });
  6.         $('.wrapper').prepend('<div class="show"></div>');
  7.     });
  8. });
  9. //si clickamos fuera se cierra el desplegable anterior
  10. $(document).mouseup(function (e){
  11.     var container = $(".capa");
  12.     if (!container.is(e.target) && container.has(e.target).length === 0){
  13.         $(".capa").animate({
  14.             width: "hide"
  15.         });
  16.         $('.show').remove();
  17.     }
  18. });

De esta forma me funciona correctamente,
muchas gracias!!!

Etiquetas: desaparecer, efecto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.