182 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			182 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 587d78a8367417b2b2512ae4 | ||
|  | title: Haz latir un corazón con CSS usando un recuento de animación infinita | ||
|  | challengeType: 0 | ||
|  | videoUrl: 'https://scrimba.com/c/cDZpDUr' | ||
|  | forumTopicId: 301062 | ||
|  | dashedName: make-a-css-heartbeat-using-an-infinite-animation-count | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | Aquí hay un ejemplo más de animación con la propiedad `animation-iteration-count` que usa el corazón que diseñaste en un desafío anterior. | ||
|  | 
 | ||
|  | La animación del latido de un segundo consta de dos piezas animadas. Los elementos `heart` (incluyendo las piezas `:before` y `:after`) se animan para cambiar el tamaño usando la propiedad `transform`, y el fondo `div` se anima para cambiar su color usando la propiedad `background`. | ||
|  | 
 | ||
|  | # --instructions--
 | ||
|  | 
 | ||
|  | Mantén el corazón latiendo agregando la propiedad `animation-iteration-count` tanto para la clase `back` como para la clase `heart` y estableciendo el valor en `infinite`. Los selectores `heart:before` y `heart:after` no necesitan ninguna propiedad de animación. | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | La propiedad `animation-iteration-count` para la clase `heart` debe tener un valor de `infinite`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert($('.heart').css('animation-iteration-count') == 'infinite'); | ||
|  | ``` | ||
|  | 
 | ||
|  | La propiedad `animation-iteration-count` para la clase `back` debe tener un valor de `infinite`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert($('.back').css('animation-iteration-count') == 'infinite'); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```html | ||
|  | <style> | ||
|  |   .back { | ||
|  |     position: fixed; | ||
|  |     padding: 0; | ||
|  |     margin: 0; | ||
|  |     top: 0; | ||
|  |     left: 0; | ||
|  |     width: 100%; | ||
|  |     height: 100%; | ||
|  |     background: white; | ||
|  |     animation-name: backdiv; | ||
|  |     animation-duration: 1s; | ||
|  | 
 | ||
|  |   } | ||
|  | 
 | ||
|  |   .heart { | ||
|  |     position: absolute; | ||
|  |     margin: auto; | ||
|  |     top: 0; | ||
|  |     right: 0; | ||
|  |     bottom: 0; | ||
|  |     left: 0; | ||
|  |     background-color: pink; | ||
|  |     height: 50px; | ||
|  |     width: 50px; | ||
|  |     transform: rotate(-45deg); | ||
|  |     animation-name: beat; | ||
|  |     animation-duration: 1s; | ||
|  | 
 | ||
|  |   } | ||
|  |   .heart:after { | ||
|  |     background-color: pink; | ||
|  |     content: ""; | ||
|  |     border-radius: 50%; | ||
|  |     position: absolute; | ||
|  |     width: 50px; | ||
|  |     height: 50px; | ||
|  |     top: 0px; | ||
|  |     left: 25px; | ||
|  |   } | ||
|  |   .heart:before { | ||
|  |     background-color: pink; | ||
|  |     content: ""; | ||
|  |     border-radius: 50%; | ||
|  |     position: absolute; | ||
|  |     width: 50px; | ||
|  |     height: 50px; | ||
|  |     top: -25px; | ||
|  |     left: 0px; | ||
|  |   } | ||
|  | 
 | ||
|  |   @keyframes backdiv { | ||
|  |     50% { | ||
|  |       background: #ffe6f2; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   @keyframes beat { | ||
|  |     0% { | ||
|  |       transform: scale(1) rotate(-45deg); | ||
|  |     } | ||
|  |     50% { | ||
|  |       transform: scale(0.6) rotate(-45deg); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  | </style> | ||
|  | <div class="back"></div> | ||
|  | <div class="heart"></div> | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```html | ||
|  | <style> | ||
|  |   .back { | ||
|  |     position: fixed; | ||
|  |     padding: 0; | ||
|  |     margin: 0; | ||
|  |     top: 0; | ||
|  |     left: 0; | ||
|  |     width: 100%; | ||
|  |     height: 100%; | ||
|  |     background: white; | ||
|  |     animation-name: backdiv; | ||
|  |     animation-duration: 1s; | ||
|  |     animation-iteration-count: infinite; | ||
|  |   } | ||
|  | 
 | ||
|  |   .heart { | ||
|  |     position: absolute; | ||
|  |     margin: auto; | ||
|  |     top: 0; | ||
|  |     right: 0; | ||
|  |     bottom: 0; | ||
|  |     left: 0; | ||
|  |     background-color: pink; | ||
|  |     height: 50px; | ||
|  |     width: 50px; | ||
|  |     transform: rotate(-45deg); | ||
|  |     animation-name: beat; | ||
|  |     animation-duration: 1s; | ||
|  |     animation-iteration-count: infinite; | ||
|  |   } | ||
|  |   .heart:after { | ||
|  |     background-color: pink; | ||
|  |     content: ""; | ||
|  |     border-radius: 50%; | ||
|  |     position: absolute; | ||
|  |     width: 50px; | ||
|  |     height: 50px; | ||
|  |     top: 0px; | ||
|  |     left: 25px; | ||
|  |   } | ||
|  |   .heart:before { | ||
|  |     background-color: pink; | ||
|  |     content: ""; | ||
|  |     border-radius: 50%; | ||
|  |     position: absolute; | ||
|  |     width: 50px; | ||
|  |     height: 50px; | ||
|  |     top: -25px; | ||
|  |     left: 0px; | ||
|  |   } | ||
|  | 
 | ||
|  |   @keyframes backdiv { | ||
|  |     50% { | ||
|  |       background: #ffe6f2; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   @keyframes beat { | ||
|  |     0% { | ||
|  |       transform: scale(1) rotate(-45deg); | ||
|  |     } | ||
|  |     50% { | ||
|  |       transform: scale(0.6) rotate(-45deg); | ||
|  |     } | ||
|  |   } | ||
|  | </style> | ||
|  | <div class="back"></div> | ||
|  | <div class="heart"></div> | ||
|  | ``` |