Dynamic Image Sizing (Zoom) for Firefox
The following javascript code will setup a HTML document so that in Firefox when the fontsize is increased or decreased, the images will increase or decrease in size as well. The code can be appended to the end of any HTML document you wish or possibly made into a Firefox extension.
Usage
After appending the following code to any HTML document use theCtrl+Mouse Wheel
, the View -> Text Size
, Ctrl++
, Ctrl+-
, or Ctrl+0
menus and or accelerators in Firefox to zoom the page in or out. Internet Explorer and Opera already have the ability to zoom text and images and as far as I know are unaffected by the code.
Limitations
The code does not resize images that are displayed as part of the CSS style.Javascript Code
<!-- dynamic image sizing - set image size according to font size {{{ Copyright (C) 2007 John Elkins LISCENSE This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. REQUIREMENTS Firefox web browser. IE and Opera already have an image zoom functionality. USAGE Place the following code at the END of the document. After all images have finished loading. LIMITATIONS Images defined by CSS styles are not resized Version 1 4 June 2007 --> <style type="text/css"> <!-- .em_test_hidden { position:absolute; left:0px; top:-500px; width:1px; overflow:hidden; } --> </style> <script type="text/javascript"> <!-- // Create the test image var element = document.createElement('img'); element.setAttribute("src", ""); element.setAttribute("style","height:1em;"); element.setAttribute("class","em_test_hidden"); element.setAttribute("id","em_test_element"); document.body.appendChild(element); element.class="em_test_hidden"; // Use the test image to determine the pixels per em var px_per_em = document.getElementById("em_test_element").height; // Set all image heights to change relative to the em var image = document.getElementsByTagName("img"); for (var i=0; i<image.length; i++) { var dynamic_em_height=image[i].height/px_per_em; var dynamic_em_width=image[i].width/px_per_em; image[i].style.height = dynamic_em_height+"em"; image[i].style.width = dynamic_em_width+"em"; } // change the document so it also resizes accordingly document.body.style.width = document.width/px_per_em+"em"; --> </script> <!--}}}-->
No comments:
Post a Comment