Geolocalización

En el siguiente ejemplo vamos a localizar la posición de un usuario obteniendo los valores de latitud y longitud del mismo, a través de la función getCurrentPosition().

<script> 
var x = document.getElementById("demo"); 
function getLocation() 
	{
	if (navigator.geolocation) 
	{navigator.geolocation.getCurrentPosition(showPosition);}
	else{x.innerHTML = "Geolocation is not supported by this browser.";} 
	}
function showPosition(position) 
	{
	x.innerHTML = "Latitude: " + position.coords.latitude + 
	"Longitude: " + position.coords.longitude; 
	}
</script>
				
  • Primero se comprueba si la Geolocalización está soportada.
  • Si es así, arranca el proceso, sino se mostrará un mensaje al usuario.
  • Si el proceso getCurrentPosition() es correcto, devolverá un objeto de coordenadas a la función especificada en el parámetro showPosition.
  • La función showPosition() muestra los valores de latitud y longitud.

Presiona el botón para obtener tus coordenadas:



Drag and Drop

  • Lo primero es convertir un elemento en arrastrable, mediante el atributo draggable.
  • Después especificamos lo que ocurrirá cuando el elemento se arrastre. El atributo ondragstart llama a una función drag(event), que especifica que datos serán arrastrados.
  • El evento ondragover específica donde puede ser arrastrado el elemento. Para permitir el arrastre llamaremos al evento event.preventDefault().
  • Cuando soltemos al elemento arrastrado ocurrirá otro evento. En el ejemplo anterior al atributo ondrop llama a la función drop(event).
<div id="dragdrop1" ondrop="drop(event)" ondragover="allowDrop(event)">
	<img src="../img/asuncion.png" draggable="true" 
	ondragstart="drag(event)" id="drag1" width="96" height="96">
</div>
<div id="dragdrop2" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
				
<script>
		function allowDrop(ev)
		{
		ev.preventDefault();
		}

		function drag(ev)
		{
		ev.dataTransfer.setData("Text",ev.target.id);
		}

		function drop(ev)
		{
		ev.preventDefault();
		var data=ev.dataTransfer.getData("Text");
		ev.target.appendChild(document.getElementById(data));
		}
</script>