imgsizer.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var imgSizer = {
  2. Config : {
  3. imgCache : []
  4. ,spacer : "/path/to/your/spacer.gif"
  5. }
  6. ,collate : function(aScope) {
  7. var isOldIE = (document.all && !window.opera && !window.XDomainRequest) ? 1 : 0;
  8. if (isOldIE && document.getElementsByTagName) {
  9. var c = imgSizer;
  10. var imgCache = c.Config.imgCache;
  11. var images = (aScope && aScope.length) ? aScope : document.getElementsByTagName("img");
  12. for (var i = 0; i < images.length; i++) {
  13. images[i].origWidth = images[i].offsetWidth;
  14. images[i].origHeight = images[i].offsetHeight;
  15. imgCache.push(images[i]);
  16. c.ieAlpha(images[i]);
  17. images[i].style.width = "100%";
  18. }
  19. if (imgCache.length) {
  20. c.resize(function() {
  21. for (var i = 0; i < imgCache.length; i++) {
  22. var ratio = (imgCache[i].offsetWidth / imgCache[i].origWidth);
  23. imgCache[i].style.height = (imgCache[i].origHeight * ratio) + "px";
  24. }
  25. });
  26. }
  27. }
  28. }
  29. ,ieAlpha : function(img) {
  30. var c = imgSizer;
  31. if (img.oldSrc) {
  32. img.src = img.oldSrc;
  33. }
  34. var src = img.src;
  35. img.style.width = img.offsetWidth + "px";
  36. img.style.height = img.offsetHeight + "px";
  37. img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
  38. img.oldSrc = src;
  39. img.src = c.Config.spacer;
  40. }
  41. // Ghettomodified version of Simon Willison's addLoadEvent() -- http://simonwillison.net/2004/May/26/addLoadEvent/
  42. ,resize : function(func) {
  43. var oldonresize = window.onresize;
  44. if (typeof window.onresize != 'function') {
  45. window.onresize = func;
  46. } else {
  47. window.onresize = function() {
  48. if (oldonresize) {
  49. oldonresize();
  50. }
  51. func();
  52. }
  53. }
  54. }
  55. }