Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Slider 100% css ¿transiciones?

Estas en el tema de Slider 100% css ¿transiciones? en el foro de CSS en Foros del Web. Hola Como dice el titulo, actualmente tengo un slider 100% css en mi web, ya que es una plantilla antigua wordpress 3.0.1, y jquery me ...
  #1 (permalink)  
Antiguo 09/10/2014, 23:37
Avatar de sebandrescc2  
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Slider 100% css ¿transiciones?

Hola

Como dice el titulo, actualmente tengo un slider 100% css en mi web, ya que es una plantilla antigua wordpress 3.0.1, y jquery me genera muchos conflctos

Mi duda es... ¿como puedo hacer para que al cargar el sitio comiencen a pasar una tras otra cada x segundos??

css
Código CSS:
Ver original
  1. /*************************** Slider ***************************/
  2. #cc-slider {
  3.     text-align: center;
  4.     margin: 0 auto;
  5.     max-width: 850px;
  6. }
  7.  
  8. #cc-slider input {
  9.     display: none;
  10. }
  11.  
  12. #cc-slider label, a {
  13.     color: #02ADEF;
  14.     cursor: pointer;
  15.     text-decoration: none;
  16. }
  17. #cc-slider label:hover {
  18.     color: #02ADEF !important;
  19. }
  20.  
  21. #slide1:checked ~ #cc-slides .inner { margin-left:0; }
  22. #slide2:checked ~ #cc-slides .inner { margin-left:-100%; }
  23. #slide3:checked ~ #cc-slides .inner { margin-left:-200%; }
  24. #slide4:checked ~ #cc-slides .inner { margin-left:-300%; }
  25. #slide5:checked ~ #cc-slides .inner { margin-left:-400%; }
  26.  
  27.  
  28. #overflow {
  29.     width: 100%;
  30.     overflow: hidden;
  31. }
  32.  
  33. #cc-slides article img {
  34.     width: 100%;
  35. }
  36.  
  37. #cc-slides .inner {
  38.     width: 500%;
  39.     line-height: 0;
  40. }
  41.  
  42. #cc-slides article {
  43.     width: 20%;
  44.     float: left;
  45. }
  46.  
  47. #controls {
  48.     margin: -8% 0 0 84%;
  49.     width: 15%;
  50.     height: 50px;
  51. }
  52.  
  53. #controls label {
  54.     display: none;
  55.     width: 50px;
  56.     height: 50px;
  57.    
  58. }
  59.  
  60. #active {
  61.     margin: 23% 0 0;
  62.     text-align: center;
  63. }
  64.  
  65. #active label {
  66.     -webkit-border-radius: 5px;
  67.     -moz-border-radius: 5px;
  68.     border-radius: 5px;
  69.     display: inline-block;
  70.     width: 10px;
  71.     height: 10px;
  72.     background: #f89e67;
  73. }
  74.  
  75. #active label:hover {
  76.     background: #ccc;
  77.     border-color: #777 !important;
  78. }
  79.  
  80. #controls label:hover {
  81.     opacity: 0.8;
  82. }
  83.  
  84. #slide1:checked ~ #controls label:nth-child(2),
  85. #slide2:checked ~ #controls label:nth-child(3),
  86. #slide3:checked ~ #controls label:nth-child(4),
  87. #slide4:checked ~ #controls label:nth-child(5),
  88. #slide5:checked ~ #controls label:nth-child(1) {
  89.     background: url('http://partnerrestorant.cl/slider/images/next.png') no-repeat;
  90.     float: right;
  91.     margin: 0 10px 0 0;
  92.     display: block;
  93.     background-color:#02ADEF;
  94. }
  95.  
  96.  
  97. #slide1:checked ~ #controls label:nth-child(5),
  98. #slide2:checked ~ #controls label:nth-child(1),
  99. #slide3:checked ~ #controls label:nth-child(2),
  100. #slide4:checked ~ #controls label:nth-child(3),
  101. #slide5:checked ~ #controls label:nth-child(4) {
  102.     background: url('http://partnerrestorant.cl/slider/images/prev.png') no-repeat;
  103.     float: left;
  104.     margin: 0 0 0 17px;
  105.     display: block;
  106.     background-color:#02ADEF;
  107. }
  108.  
  109.  
  110.  
  111. /* cctooltip Box */
  112.  
  113. .cctooltip {
  114.    
  115.     color: #FFFFFF;
  116.     font-style: italic;
  117.     line-height: 20px;
  118.     margin-top: 150px;
  119.     opacity: 0;
  120.     position: absolute;
  121.     text-align: left;
  122.     -webkit-transform: translateZ(0);
  123.     -webkit-transition: all 0.3s ease-out;
  124.     -moz-transition: all 0.3s ease-out;
  125.     -o-transition: all 0.3s ease-out;
  126.     transition: all 0.3s ease-out;
  127. }
  128.  
  129. .cctooltip h3 {
  130.     color: #FFFFFF;
  131.     margin: 0 0 5px;
  132.     font-weight: normal;
  133.     font-size: 16px;
  134.     font-style: normal;
  135.     background: none repeat scroll 0 0 #222222;
  136.     padding: 5px;
  137. }
  138. .cctooltip h4 {
  139.     color: #FFFFFF;
  140.     margin: 0 0 5px;
  141.     font-weight: normal;
  142.     font-size: 14px;
  143.     font-style: normal;
  144.     background: none repeat scroll 0 0 #222222;
  145.     padding: 5px;
  146.     text-align:right;
  147.     width:200px;
  148. }
  149.  
  150.  
  151.  
  152. /* cc-slider Styling */
  153.  
  154. #cc-slides {
  155.     margin: 0px 0 0;
  156.    
  157.    
  158.     padding: 0.3%;
  159.    
  160.     background: #0E4058;
  161.    
  162. }
  163.  
  164.  
  165. /* Animation */
  166.  
  167. #cc-slides .inner {
  168.     -webkit-transform: translateZ(0);
  169.     -webkit-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
  170.     -moz-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
  171.     -ms-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
  172.      -o-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
  173.         transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
  174.  
  175.     -webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
  176.     -moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
  177.     -ms-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
  178.      -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
  179.         transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
  180. }
  181.  
  182. #cc-slider {
  183.     -webkit-transform: translateZ(0);
  184.     -webkit-transition: all 0.5s ease-out;
  185.     -moz-transition: all 0.5s ease-out;
  186.     -o-transition: all 0.5s ease-out;
  187.     transition: all 0.5s ease-out;
  188. }
  189.  
  190. #controls label{
  191.     -webkit-transform: translateZ(0);
  192.     -webkit-transition: opacity 0.2s ease-out;
  193.     -moz-transition: opacity 0.2s ease-out;
  194.     -o-transition: opacity 0.2s ease-out;
  195.     transition: opacity 0.2s ease-out;
  196. }
  197.  
  198. #slide1:checked ~ #cc-slides article:nth-child(1) .cctooltip,
  199. #slide2:checked ~ #cc-slides article:nth-child(2) .cctooltip,
  200. #slide3:checked ~ #cc-slides article:nth-child(3) .cctooltip,
  201. #slide4:checked ~ #cc-slides article:nth-child(4) .cctooltip,
  202. #slide5:checked ~ #cc-slides article:nth-child(5) .cctooltip {
  203.     opacity: 1;
  204.     -webkit-transition: all 1s ease-out 0.6s;
  205.     -moz-transition: all 1s ease-out 0.6s;
  206.     -o-transition: all 1s ease-out 0.6s;
  207.     transition: all 1s ease-out 0.6s;
  208. }

y en el header de mi plantilla
Código HTML:
<!-- Cabecera-->

				<div class="container" style="width: 900px;">
    <article id="cc-slider">
      <input checked="checked" name="cc-slider" id="slide1" type="radio">
      <input name="cc-slider" id="slide2" type="radio">
      <input name="cc-slider" id="slide3" type="radio">
      <input name="cc-slider" id="slide4" type="radio">
      <!--input name="cc-slider" id="slide5" type="radio"-->
      <div id="cc-slides" style="height: 240px;">
        <div id="overflow">
          <div class="inner">
            <article>
              <div class="cctooltip">
                <h3>Ideal para su Restorant</h3>
                <h4>Más sobre Partner Restorant <a href="http://www.partnerrestorant.cl/?page_id=39">AQUÍ</a></h4>
              </div>
              <img src="http://partnerrestorant.cl/slider/images/slide-1.jpg"> 
            </article>
            <article>
              <div class="cctooltip">
                <h3>Ideal para gestión de alimentos</h3>
                <h4>Más sobre Partner Food <a href="http://www.partnerrestorant.cl/?page_id=939">AQUÍ</a></h4>
              </div>
              <img src="http://partnerrestorant.cl/slider/images/slide-2.jpg"> </article>
            <article>
              <div class="cctooltip">
                <h3>NightClub / Discoteque</h3>
                <h4>Más sobre nuestros softwares <a href="http://www.partnerrestorant.cl/?page_id=12">AQUÍ</a></h4>
              </div>
              <img src="http://partnerrestorant.cl/slider/images/slide-3.jpg"> </article>
            <article>
              <div class="cctooltip">
                <h3>Complemente su software</h3>
                <h4>Más sobre Partner Biométrico <a href="http://www.partnerrestorant.cl/?page_id=39">AQUÍ</a></h4>
              </div>
              <img src="http://partnerrestorant.cl/slider/images/slide-4.jpg"> </article>
            <!--article>
              <div class="cctooltip">
                <h3>Fashion / Sport / Photography</h3>
                <h4>By <a href="#">codeconvey</a></h4>
              </div>
              <img src="http://partnerrestorant.cl/slider/images/slide-1.jpg"> </article-->
          </div>
        </div>
      </div>
      <div id="controls">
        <label for="slide1"></label>
        <label for="slide2"></label>
        <label for="slide3"></label>
        <label for="slide4"></label>

      </div>
    </article>

	
  </div>


			</div> 
Ojalá alguien me pueda echar una mano, aunque sea forzosamente con algo de js
__________________
Aquí voy a escribir mi firma
  #2 (permalink)  
Antiguo 10/10/2014, 03:24
 
Fecha de Ingreso: marzo-2011
Ubicación: Oaxaca
Mensajes: 252
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Slider 100% css ¿transiciones?

Lo que tendrias que hacer seria uso de las propiedades css de animation y keyframes
por ejemplo, supongamos que tenemos en tu slider 5 elementos (en tu caso son Articulos, pero me expresare como "elemento" a lo largo de mi respuesta ), el primer elemento de esos 5 tiene un ID llamado "bann", a bann en la hoja de estilo le tendrías que agregar las siguientes propiedades
Código:
#bann{
     //"Intercambiar" es el nombre de la animacion, puede ser el nombre que gustes//      
     animation-name: intercambiar;

      //la velocidad de la animacion, linear permite que la velocidad sea constante tanto al comienzo como al final//          
     animation-timing-function: linear;
    
    //Permite que la animacion se revita n numero de veces, si ponemos infinite, no dejara de repetirce//
     animation-iteration-count: infinite; 
  
    //Tiempo que durara la animacion//
    animation-duration:35s;

   //Estas son algunas de las propiedades, si quieres hacerlo mas compacto, puedes dejarlo de la siguiente forma//
   animation: intercambiar linear infinite 30s;

}
Recuerda poner también los prefijos, -webkit-, -moz- etc. aun que si usas Prefixfree o algo parecido, ya te ahorraste el trabajo

Ahora bien, vamos a crear los keyframes, si te gustan las matemáticas, te vas a divertir un buen rato con esto
vamos a dividir esto en 3 partes (la 3ra ya no usamos las matematicas ):
1° Tenemos indicado en la animación un tiempo de 30 Segundos y supongamos que tengo 5 elementos para mostrar en el slider, si hacemos una división sencilla, sabemos que cada elemento se mostrara 6 segundos, hasta aquí no hay ningun problema.
2° los keyframes trabajan en porcentaje desde el 0% hasta el 100%, si nosotros dejamos indicada una transición asi, nunca se detendrán los elementos el tiempo suficiente para apreciarlo, por lo tanto, haremos "cortes" entre las transiciones para que se detengan un rato (llamemosle tiempo muerto) y después, pueda efectuarse la transición, asi que comenzamos

sabemos que nuestro tiempo de la animación son 30 Segundos, esto vendría siendo el 100%, pero, como tenemos 5 elementos, vamos a dividir ese 100% entre de 5, el resultado es del 20%, por lo tanto, cada 20% iremos efectuando un movimiento.

3° Una vez que tenemos establecido el porcentaje exacto de cada corte, procedemos a ponerlo en el keyframe, en este caso, vamos a suponer que nuestro elemento individual mide 300px de ancho, y todo miden lo mismo, ademas que estan uno a lada del otro sin ningun margen ( aplicando la propiedad float:left;)
Código:
@keyframes intercambiar {
 	 0%{left: 0px;  }
 	 20%{left:-300px; }
 	 40%{left:-600px; }
 	 60%{left:-900px; }
 	 80%{left:-1200px; }
 	 100%{left:0px; } //para que la animación regrese al principio y pase por todas las anteriores//
}
pero, como lo explique anteriormente, si lo dejamos asi, nuestra animación no se detendría en ningún momento y avanzara fluida-mente del 0% al 100% sin darnos tiempo realmente de apreciar nuestro contenido, por lo que haremos los cortes

Código:
@keyframes intercambiar {
         0%{left: 0px;  }
         19%{left: 0px;  }

         20%{left:-300px; }
         39%{left:-300px; }

         40%{left:-600px; }
         59%{left:-600px; }

 	 60%{left:-900px; }
 	 79%{left:-900px; }

 	 80%{left:-1200px; }
 	 99%{left:-1200px; }

 	 100%{left:0px; } //para que la animación regrese al principio y pase por todas las anteriores//
}
como puedes ver, nuestro corte lo hacemos durante el 19%(Tiempo muerto) de la animación por elemento, ese 1% lo usamos para movernos(Tiempo activo)

Espero que te sirva amigo, cualquier duda, comenta
  #3 (permalink)  
Antiguo 10/10/2014, 15:16
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Slider 100% css ¿transiciones?

Algo más simplificado:

Código CSS:
Ver original
  1. @keyframes intercambiar {
  2.   0%, 19%, to { left: 0 }
  3.   20%, 39%    { left: -300px }
  4.   40%, 59%    { left: -600px }
  5.   60%, 79%    { left: -900px }
  6.   80%, 99%    { left: -1200px }
  7. }
__________________
(:
  #4 (permalink)  
Antiguo 12/10/2014, 11:41
Avatar de sebandrescc2  
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Slider 100% css ¿transiciones?

Hola amigos

Les agradezco el tiempo que se dieron en responder. La verdad es que me queda clarísimo.
No sabia lo de Prefix Free, esta bueno.

Saludos y gracias una vez más
__________________
Aquí voy a escribir mi firma

Etiquetas: background, color, hover, slider, width
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 02:55.