Tutorial JavaScript, saber tu peso en otro planeta

Guardada en JavaScript, publicada en mayo-2018 - Página vista 362 veces

Tutorial JavaScript, saber tu peso en otro planeta

Si estás comenzando con Javascript, pero tu propósito es dominarlo como un profesional, te traemos hoy un artículo que te va a venir como anillo al dedo para tus comienzos en web, y mejorar tu stack en Javascript, además de poder añadir un proyecto chulo a tu repertorio que dejará con la boca abierta a más de un reclutador.

Vamos a crear una web que nos permita saber el nuestro peso en dos planetas diferente. Con la ayuda de javascript y css3 en este tutorial lograrás realizar un diseño totalmente visual, y muy estético realizando a su vez funciones de javascript básicas pero que nos vas a ayudar a mejorar el entendimiento de este lenguaje.

Ejemplo, Planet Weight:

0

Para comenzar

Para comenzar este proyecto podrás usar codepen, para comenzar a crear tu proyecto, o cualquier editor para paginas web como pueden ser Visual Studio Code, Sublime, Atom, etc.

En caso de que optes por hacer este tutorial de forma online, y con tu editor favorito, te recomendamos un archivo index.html, index.css y index.js, para que de esta manera puedas tener tu proyecto separado y estructurado.

Si por el contrario has optado por usar el navegador de codepen.io, no te hace falta mas nada, solo lanza código.

Establecemos el cuerpo de nuestro html

Lo primero que vamos a hacer es añadir la CDN de materiazecss para este proyecto, de esta manera, esta librería css nos ayudará a estructurar mejor nuestras vistas para responsive sin tener que escribir mucho código css. En pocas palabras ya hace un aparte del trabajo de css por nosotros y nos dará muchas más rapidez y agilidad a la hora de montar nuestros proyectos.

 

Para crear nuestra estructura, organizamos cada zona necesaria por filas. Primeros colocamos una estructura superior donde colocaremos nuestro títulos y el input html, este input es donde introduciremos el peso que queremos convertir.

Luego añadimos otra fila, la cual es importante diferenciar las columnas por tamaños, que es una de estas características de esta librería css, usaremos el col l4 s4 para que cuando nuestro cliente observe nuestro proyecto si está en tablet o desktop la fila que contiene nuestros planetas se mantenga en nuestro grid de 12 columnas (básico de html responsive), y cuando estemos en tamaño mobile introduce un s12 para que cada columna obtenga el tamaño 100% de la pantalla y de esta manera mejorar la experiencia de usuario en mobile.

En cada planeta tendremos un título donde pongamos “Peso en ….” y justo debajo un span, el cual tendremos que colocarle un id específico para que en el momento de realizar el javascript podamos decirle a este donde va a color el nuevo peso de ese planeta seleccionado.

Dándole color a nuestro elementos planetarios.

Una vez que tengamos estructurado nuestro código html, y dentro hemos llamado a nuestro index.css e index.js comenzamos con nuestros css.

Lo primero que realize es importar las fuentes, para este caso he usado un @import directamente en el css, para distribuir todo lo que son estilos por un lado y html y js por otro.

La fuente que importe ha sido la Palanquin Dark, desde google fonts, ya que para mi parecer esta le da un estilo lunar o planetario con un poco de punto cómic, que son un poco los puntos visuales que tendremos en este proyecto, una especie de animación de estilo dibujo a mano.

Establecemos el color de fondo, y los márgenes necesarios para que nuestra web se vea de la mejor manera posible, con una paleta de colores que tengan un tono que combine perfectamente con el color de nuestros planetas, en este caso marte y plutón.

Usaremos las propiedades de CSS con los pseudo elementos after y before para crear los cráteres de nuestros planetas.

Vamos a darle vida a nuestro planetas, JavaScript manos a la obra.

Lo que vamos a trabajar en esta web con javascript es bastante sencillo, asi que intentare de explicarlo muy bien para que de esta manera quede el código muy claro y tengas la capacidad de aprovecharlo en otros proyectos que puedas hacer por tu cuenta.

vamos a comenzar capturando los elemento del DOM o elementos html que vamos a usar para captar o mostrar datos. De esta manera nos va a facilitar mucho a la hora de extraer o mostrar un dato.

en Javascript tenemos distintas maneras de apuntar un elemento de DOM y guárdalo en una variable. Para apuntar un elemento una de las manera que tiene javascript para esta labor es usar un propiedad del document(en donde está generado todo lo que se ve en la web) getElementById( añadimos el id del elemento a apuntar ).

Para crear una variable en javascript, actualmente existen varias maneras, pero la forma tradicional y que se usa desde los principios de JavaScript hasta ahora es comenzando por la palabra var (variable) y seguido por el nombre de nuestra variables.

importante: hay nombres de variables que no se pueden usar ya que están reservadas por el sistema, por ejemplo getElementById se usa para propiedades de elementos, si queremos crear una variable con ese nombre javascript nos dará una error y no podrá funcionar nuestra aplicación. Si quieres crear una variable con nombre alert, te tengo que decir que es una mala idea, exacto! es una variable reservada del sistema, intenta de colocar alert(); en cualquier parte de nuestro proyecto y veras que pasa.

Entonces una vez claro, apuntamos a nuestros elementos y las guardamos en variables para de esta manera, poder así, indicar con la variable correspondiente que ese campo realice una acción.

Lo elementos que vamos a vincular son los campos con id: ‘weight’ para obtener el valor introducido por el usuario, weightNeptune y weightMars para mostrar los resultados.

Una vez guardado en variables los campos a utilizar, vamos a definir la manera que va accionar las acciones necesarias para que nuestro cliente pueda ejecutar la acción de forma autónoma. Para esto vamos a usar un addEventLister(‘acción’), es un método de Javascript que se le otorgan a casi todos los elementos que lo que hace es ejecutar una acción cuando se ejecute el evento que digamos, para nuestro caso queremos que se active una acción cuando el cliente presione cualquier tecla y a web calcule automáticamente el peso. Y la acción a realizar después de ejecutar el evento es la que le mande yo por medio de una función.

Vamos a usar una addEventListener con un evento hacia la acción Keyup para que javascript intérprete que hacer justo después de que el cliente presione una tecla de su teclado o móvil. Pregunta, ¿Cómo hacemos que javascript realize una accion cuando el usuario justo presiona una tecla?. addEventListener(‘keydown’).

Momento de funciones

El motor de Javascript, las funciones, las hay de todos tipos tamaños, formas, colores, y con nombres o sin ellos. En este caso vamos a usar unas funciones un poco rebuscadas, para complicarlo un poco. He creado una funcion que retorna unos resultados que vienen desde otra función para realizar la operación. Raro no :), pero esto te puede hay a pasar por parametro que tipo de operación quieres hacerla y dividir en muchas funcione muy pequeñas para que nuestra opresión no muestre datos.

Entonces, al lío, cuando nuestro eventos se ejecuta, que es cuando un cliente deja de presionar una tecla, ejecutamos la función planetWeight enviado el planeta que queremos calcular. Luego en esta función estableceremos los datos necesarios de la segun de cada planeta para luego ejecutar la función de calculate() a la cual le pasaremos el planeta y tu peso, para que haga el cálculo necesario según la variable del planeta para multiplicar el peso en ese planeta.

En javascript de normal las variables que se crean en una función como es el caso de planerWeight no serían accesible desde otra funcion, pero al hacer una funcion desde otra función esto quiere decir que la función calculate tendrá pleno acceso a las varias creadas dentro de su función contenedora. Un poco lío y hay manera mas simples de hacer, pero creo que esta manera es mucho más ordenada y escribimos un poco menos de código a parte de mantenerlo mucho más organizado.

El innerHTML sirve para introducir un valor en un elemento html, así que si las variables que están dentro del addEventListener que apuntan a los elemento que anteriormente declaramos, son los encargados de ejecutar las funciones e imprimir en valor en la web. Asu vez las demás funciones retornan de una a la otra el cálculo total del nuevo peso en cada planeta.

Ver Ejemplo en CodePen

Codigo GitHub

Emilio Hernández

Publicado por Emilio Hernández