![]() | Source code below from: Pragmatic Ajax : A Web 2.0 Primer By Justin Gehtland, Ben Galbraith, and Dion Almaer Published 10 April, 2006 Average rating
Powells
Alibris
|
<!-- ! Excerpted from "Pragmatic Ajax" ! We make no guarantees that this code is fit for any purpose. ! Visit http://www.pragmaticprogrammer.com/titles/ajax for more book information. --> <html> <head> <title>Ajaxian Maps</title> <style type="text/css"> h1 { font: 20pt sans-serif; } #outerDiv { height: 600px; width: 800px; border: 1px solid black; position: relative; overflow: hidden; } #innerDiv { position: relative; left: 0px; top: 0px; } </style> <script type="text/javascript"> // START:dragstuff // used to control moving the map div var dragging = false; var top; var left; var dragStartTop; var dragStartLeft; function init() { // make inner div big enough to display the map setInnerDivSize('2000px', '1400px'); // wire up the mouse listeners to do dragging var outerDiv = document.getElementById("outerDiv"); outerDiv.onmousedown = startMove; outerDiv.onmousemove = processMove; outerDiv.onmouseup = stopMove; // necessary to enable dragging on IE outerDiv.ondragstart = function() { return false; } } function startMove(event) { // necessary for IE if (!event) event = window.event; dragStartLeft = event.clientX; dragStartTop = event.clientY; var innerDiv = document.getElementById("innerDiv"); innerDiv.style.cursor = "-moz-grab"; top = stripPx(innerDiv.style.top); left = stripPx(innerDiv.style.left); dragging = true; return false; } function processMove(event) { if (!event) event = window.event; // for IE var innerDiv = document.getElementById("innerDiv"); if (dragging) { innerDiv.style.top = top + (event.clientY - dragStartTop); innerDiv.style.left = left + (event.clientX - dragStartLeft); } } function stopMove() { var innerDiv = document.getElementById("innerDiv"); innerDiv.style.cursor = ""; dragging = false; } function stripPx(value) { if (value == "") return 0; return parseFloat(value.substring(0, value.length - 2)); } // END:dragstuff function setInnerDivSize(width, height) { var innerDiv = document.getElementById("innerDiv"); innerDiv.style.width = width; innerDiv.style.height = height; } </script> </head> <body onload="init()"> <p> <h1>Ajaxian Maps</h1> </p> <div id="outerDiv"> <div id="innerDiv"> The rain in Spain falls mainly in the plains. </div> </div> </body> </html>