ambient reality

pimping code and tech crap

Thursday, February 16, 2006

IE7's not so awesome zoom feature

As everyone knows, IE7 is still very much in beta. Well, they have added a zoom feature that allows you to, well, zoom. The new Microsoft Natural Ergonomic Keyboard 4000 even has a zoom slider that works with this zoom feature. When you zoom in, it doesn't just increase the text size, it essentially stretches the entire page including all graphics and form elements. Now, imagine you're a designer and you're thinking "awesome, now I can quickly zoom in to makes sure everything is pixel perfect." Guess again. When it stretches images, it runs a Gaussian filter or something that interpolates the pixels which causing nasty visual artifacts. What's even worse is you zoom in or out, the rendering of the page slows down big time. Scrolling or resizing the browser window is jerky. For me, select text when zoomed in didn't work. However, drop downs were quite fast and crisp. And the biggest problem that the new zoom feature causes issues with element positions. Say you have a web page with an image positioned centered, but relative, within some tables or divs. To compute the distance from the left edge of the screen to the left edge of the image, you'd do something like this in Javascript: var x=0,e=document.getElementById("myimage"); do{ x+=e.offsetLeft; }while(e=e.offsetParent); For my test page, I computed the distance with a zoom level of 100% to be 479 pixels. When I zoomed out to 10%, the distance grew to 488. Zooming in caused the distance to shrink to 387 pixels. You cannot reliably get the distance unless the zoom level is set to 100%. So, who cares? All the developers who use mouse capture and do cool drag and drop stuff. Now some things won't work as designed and usability goes to crap. Perhaps these flaws are due to it's beta status, but I'm willing to bet a quarter-pounder with cheese that the final release will behave the same way. So in short, don't use IE7's zoom feature.

0 Comments:

Post a Comment

<< Home