只能使某些图像流畅

时间:2013-07-15 22:52:50

标签: javascript

此代码来自此处http://unstoppablerobotninja.com/entry/fluid-images

它会从页面中获取所有图像并使其变得流畅。它很有效,我相信很多人都已经知道了。

我的问题是如何通过ID或CLASS将此代码仅应用于页面上的某些图像。像这样的东西:

<img alt="" src="fluid_image.png" id="makeitfuild"/>

我不希望我的所有照片都流畅但我仍然希望将代码用于某些图像。

请帮忙,因为我不知道我需要在代码中修改什么

    var imgSizer = {
     Config : {
          imgCache : []
          ,spacer : "/path/to/your/spacer.gif"
     }
     ,collate : function(aScope) {
          var isOldIE = (document.all && !window.opera && !window.XDomainRequest) ? 1 : 0;
          if (isOldIE && document.getElementsByTagName) {
               var c = imgSizer;
               var imgCache = c.Config.imgCache;
               var images = (aScope && aScope.length) ? aScope : document.getElementsByTagName("img");
               for (var i = 0; i < images.length; i++) {
                    images.origWidth = images.offsetWidth;
                    images.origHeight = images.offsetHeight;
                    imgCache.push(images);
                    c.ieAlpha(images);
                    images.style.width = "100%";
               }
               if (imgCache.length) {
                    c.resize(function() {
                         for (var i = 0; i < imgCache.length; i++) {
                              var ratio = (imgCache.offsetWidth / imgCache.origWidth);
                              imgCache.style.height = (imgCache.origHeight * ratio) + "px";
                         }
                    });
               }
          }
     }
     ,ieAlpha : function(img) {
          var c = imgSizer;
          if (img.oldSrc) {
               img.src = img.oldSrc;
          }
          var src = img.src;
          img.style.width = img.offsetWidth + "px";
          img.style.height = img.offsetHeight + "px";
          img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
          img.oldSrc = src;
          img.src = c.Config.spacer;
     }
     // Ghettomodified version of Simon Willison's addLoadEvent() -- http://simonwillison.net/2004/May/26/addLoadEvent/
     ,resize : function(func) {
          var oldonresize = window.onresize;
          if (typeof window.onresize != 'function') {
               window.onresize = func;
          } else {
               window.onresize = function() {
                    if (oldonresize) {
                         oldonresize();
                    }
                    func();
               }
          }
     }
}

1 个答案:

答案 0 :(得分:1)

您需要更改以下行:

var images = (aScope && aScope.length) ? aScope : document.getElementsByTagName("img");

通过类名获取图像的内容。有几种方法可以做到这一点:你可以使用jQuery,在这种情况下它只是变成

var images = (aScope && aScope.length) ? aScope : $("#myClassName");

或者,您可以只使用javascript(How to getElementByClass instead of GetElementById with Javascript?How to Get Element By Class in JavaScript?快速跳到脑海中查找有关如何简单地获取元素的任何问题。