`
caibinghong
  • 浏览: 150841 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

图片的预加载,等比例缩放

 
阅读更多

图片的预加载

javascript通过占位方式获取图片头部数据的尺

十多年的上网经验告诉我:浏览器在加载图片的时候你会看到图片会先占用一块地然后才慢慢加载完毕,并且这里大部分的图片都是没有预设width与height属性的,因为浏览器能够获取图片的头部数据。基于此,只需要使用javascript定时侦测图片的尺寸状态便可得知图片尺寸就绪的状态。

实现代码:

 

var imgReady = function (url, callback, error) {
    var width, height, intervalId, check, div,
        img = new Image(),
        body = document.body;
    img.src = url;
    // 从缓存中读取
    if (img.complete) {
        return callback(img.width, img.height);
    };
    // 通过占位提前获取图片头部数据
    if (body) {
        div = document.createElement('div');
        div.style.cssText = 'visibility:hidden;position:absolute;left:0;top:0;width:1px;
height:1px;overflow:hidden';
        div.appendChild(img)
        body.appendChild(div);
        width = img.offsetWidth;
        height = img.offsetHeight;
        check = function () {
            if (img.offsetWidth !== width || img.offsetHeight !== height) {
                clearInterval(intervalId);
                callback(img.offsetWidth, img.clientHeight);
                img.onload = null;
                div.innerHTML = '';
                div.parentNode.removeChild(div);
            };
        };
        intervalId = setInterval(check, 150);
    };
    // 加载完毕后方式获取
    img.onload = function () {
        callback(img.width, img.height);
        img.onload = img.onerror = null;
        clearInterval(intervalId);
        body && img.parentNode.removeChild(img);
    };
    // 图片加载错误
    img.onerror = function () {
        error && error();
        clearInterval(intervalId);
        body && img.parentNode.removeChild(img);
    };
};

 

 

JavaScript实现网页图片等比例缩放

 

//图片按比例缩放,可输入参数设定初始大小
function resizeimg(ImgD,iwidth,iheight) {
     var image=new Image();
     image.src=ImgD.src;
     if(image.width>0 && image.height>0){
        if(image.width/image.height>= iwidth/iheight){
           if(image.width>iwidth){
               ImgD.width=iwidth;
               ImgD.height=(image.height*iwidth)/image.width;
           }else{
                  ImgD.width=image.width;
                  ImgD.height=image.height;
                }
               ImgD.alt=image.width+"×"+image.height;
        }
        else{
                if(image.height>iheight){
                       ImgD.height=iheight;
                       ImgD.width=(image.width*iheight)/image.height;
                }else{
                        ImgD.width=image.width;
                        ImgD.height=image.height;
                     }
                ImgD.alt=image.width+"×"+image.height;
            }
     ImgD.style.cursor= "pointer"; //改变鼠标指针
     ImgD.onclick = function() { window.open(this.src);} //点击打开大图片
    if (navigator.userAgent.toLowerCase().indexOf("ie") > -1) { //判断浏览器,如果是IE
      ImgD.title = "请使用鼠标滚轮缩放图片,点击图片可在新窗口打开";
      ImgD.onmousewheel = function img_zoom() //滚轮缩放
      {
          var zoom = parseInt(this.style.zoom, 10) || 100;
          zoom += event.wheelDelta / 12;
          if (zoom> 0) this.style.zoom = zoom + "%";
          return false;
      }
     } else { //如果不是IE
            ImgD.title = "点击图片可在新窗口打开";
         }
    }
}
 
具体实现代码如下:
<img name="" src="" onload="javascript:resizeimg(this,100,200)">

分享到:
评论

相关推荐

    jquery图片预加载+等比例缩放

    "jQuery图片预加载+等比例缩放"是一个常见的优化技术,旨在提高用户体验,确保图片以最佳方式呈现。本篇将详细介绍这两个概念以及如何在实际项目中实现它们。 ### 一、jQuery图片预加载 **1. 为什么要进行图片预...

    使用jQuery实现图片预加载和自动等比例缩放插件

    本教程将详细讲解如何使用`jQuery`实现图片预加载和自动等比例缩放功能,创建一个高效、响应式的图片插件。 一、图片预加载 图片预加载技术是为了提升用户体验,避免用户在浏览网页时因为图片加载缓慢而看到空白...

    jquery 图片预加载 自动等比例缩放插件

    **************图片预加载插件****************** ///作者:没剑(2008-06-23) ///http://regedit.cnblogs.com ///说明:在图片加载前显示一个加载标志,当图片下载完毕后显示图片出来 可对图片进行是否自动缩放功能 ...

    JS实现图片预加载

    JS 实现图片预加载可以通过使用 Image 对象来实现图片的预下载,并且可以结合容器的宽和高,按照一定的缩放比例使图片显示出来。 在实现图片预加载时,需要考虑到图片的宽和高,这可以通过 Image 对象的 width 和 ...

    Jquery等比例缩放

    "Jquery等比例缩放"是指利用jQuery实现元素在保持原始比例的情况下进行缩放的功能,这对于响应式设计或者图像展示来说非常重要。下面我们将详细探讨如何使用jQuery实现等比例缩放以及相关的技术点。 首先,我们需要...

    asp.net jQuery实现图片等比例自动缩放

    **************图片预加载插件****************** ///作者:没剑(2008-06-23) http://regedit.cnblogs.com ///参数设置: scaling 是否等比例自动缩放 width 图片最大高 height 图片最大宽 loadpic 加载中的图片路径...

    图片等比例缩放

    ### 图片等比例缩放——CSS技巧解析与应用 #### 一、问题背景与解决方案概述 在网页设计过程中,图片的尺寸控制对于保持页面布局的美观性和响应性至关重要。经常出现的问题是,当上传的图片尺寸过大时,可能会导致...

    vue实现图片按比例缩放问题操作

    在给定的示例中,通过创建一个新的`Image`对象,并将其`src`属性设置为图片URL,可以预加载图片。当图片加载完成(即`onload`事件触发)后,可以计算图片的高度与宽度比例。例如: ```javascript getImg(src) { ...

    微信小程序 实现canvas按照原图等比例不失真绘制海报图并保存海报图片到本地相册

    1. **等比例缩放图片** 当我们需要将图片绘制到canvas时,保持图片的原始比例是非常重要的,以避免失真。这可以通过计算图片的宽高比和canvas的可用空间来实现。例如,我们可以先获取图片的原始尺寸,然后根据...

    API 控制图片移动、缩放、加载图标

    使用预加载策略、异步加载技术和优化的渲染顺序可以有效减少这种情况。 6. **提高UI的可操作性**:一个优秀的UI应该易于理解和交互。通过API控制图片的移动和缩放,可以增加用户的控制感,提升可操作性。例如,添加...

    scrollview图片的缩放处理

    对于大图,可以考虑使用Bitmap的inSampleSize参数进行预加载时的缩小,以降低内存使用。 7. **测量和布局**: 在ScrollView中处理图片缩放时,需要正确测量和布局ImageView。在onMeasure()方法中,根据图片的原始...

    JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载

    它计算图片高度和宽度与期望值的差值,然后根据哪个差值更大,按比例缩放图片的对应维度。缩放后的图片替换原有图片并显示,同时移除加载指示符。 最后,通过`$(document).ready`确保DOM加载完毕后,调用`yQuery`的...

    jQuery图片预加载 等比缩放实现代码

    代码如下: /* * Image preload and auto zoom * scaling 是否等比例自动缩放 * width 图片最大高 * height 图片最大宽 * loadpic 加载中的图片路径 * example $(“*”).LoadImage(true,w,h); */ jQuery.fn.LoadImage...

    jQuery图片缩放例子代码

    需要注意的是,为了保持图片的原始比例缩放,我们通常会同时改变`width`和`height`,并确保它们的比例与原始图片一致。这可以通过计算原始宽高比并应用于新尺寸来实现。 此外,考虑到性能,如果图片数量大或者图片...

    GalleryDemo 图片手势缩放

    - **使用Bitmap的options.inJustDecodeBounds属性预加载图片大小**,不加载实际像素,仅获取图片尺寸,从而计算合适的缩放比例。 - **使用inSampleSize**,在加载Bitmap时设置合适的采样率,降低图片的分辨率,...

    FLASH AS3.0 控制加载的图片旋转缩放

    最后,`com`目录可能包含了一些自定义组件或类库,这些组件可能被用于增强图片浏览器的功能,如图片的缓存管理、预加载策略等。 总结来说,Flash AS3.0控制加载图片旋转缩放的核心技术包括:使用`Loader`类加载图片...

    可缩放的图片控件.rar

    例如,`Zoom`模式可以使图片按比例缩放以适应控件大小,这是实现缩放功能的基础。 2. **图片缩放算法**:为了实现平滑的缩放效果,需要使用合适的图像缩放算法,如双线性插值、三次样条插值等。这些算法可以确保...

    ViewPager 图片缩放

    当我们滑动ViewPager时,PagerAdapter会根据滑动方向销毁当前页或预加载相邻页,以保持内存使用效率。 为了整合这些功能,开发者可能会创建一个自定义的ImageView子类,如`ViewPagerScaleImageView`,在这个子类中...

    JQuery 图片延迟加载并等比缩放插件

    - 预加载完成后,会根据图片实际尺寸与指定高度和宽度的比例,通过processImg函数计算并设置图片的等比缩放尺寸。 - 最后,插件会移除预加载图,并将图片显示出来。 6. **代码细节** - 该插件通过一个立即执行...

Global site tag (gtag.js) - Google Analytics