The British Library has a similar (though Shockwave-based) magnifier for their Leonardo's Notebook exhibit. There's also this DHTML version that takes a slightly different approach (the small and large versions are in different frames, and movement in one is mirrored in the other) and another that, due to being made in 2000, works only with MSIE and Netscape 4.x.
Based on a helpful comment from José Jeria, I've moved the
onmousemove handler from the magnifier
<div> to the document's body. This fixes the problem of the mouse moving so quickly that it escapes the boundaries of the
<div>, leading to the handler not being called. José also noticed that the page did not work as expected in Opera, and tracked it down to a lack of support for floating point (pixel) values for the
background-position CSS property. Wrapping those numbers in a
Math.round() call fixes that problem. Finally, by changing the zoomed JPEG to be progressive, we can make its long load time more bearable (though Safari doesn't let it be moved until everything has finished loading).