zoukankan      html  css  js  c++  java
  • 用JavaScript调整图片大小

    告诉大家如何用JavaScript调整图片的尺寸大小,下面是JS代码。

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

    我前段时间写的一篇文章就遇到过这种事情,后来用CSS的overflow和max-width属性暂时解决了页面变形的问题。这种方法好处是简单,但坏处是会破坏某些细节的效果。

    如overflow:hidden,意思是当内部元素宽度大于父框架时隐藏超出宽度的部分。这样做可能会是一些内容突然截断,被隐藏了,很对不起观众。

    通过max-width属性限制文章插图最大宽度的话,需要考虑各浏览器的兼容性。IE6是不支持这个属性的,在我印象中,一些浏览器虽然支持这个属性,但图片不是等比缩放的(好像是Safari和Opera,记不清了),这样做的话对这些浏览器的用户很不公平。

    因此,我最终选择的是通过JavaScript动态改变图片尺寸。这种方法对各种浏览器兼容性良好(现在应该很少人会禁用JavaScript吧?),如果换主题的话,也可以灵活地改变文章插图的最大尺寸。

    方案有两个,由于我使用的主题是加载了jQuery库的,因此可以用以下代码实现:

    以下为引用的内容:
    $(document).ready(function() {
    $('.post img').each(function() {
    var maxWidth = 100; // 图片最大宽度
    var maxHeight = 100; // 图片最大高度
    var ratio = 0; // 缩放比例
    var width = $(this).width(); // 图片实际宽度
    var height = $(this).height(); // 图片实际高度
     
    // 检查图片是否超宽
    if(width > maxWidth){
    ratio = maxWidth / width; // 计算缩放比例
    $(this).css("width", maxWidth); // 设定实际显示宽度
    height = height * ratio; // 计算等比例缩放后的高度
    $(this).css("height", height * ratio); // 设定等比例缩放后的高度
    }
     
    // 检查图片是否超高
    if(height > maxHeight){
    ratio = maxHeight / height; // 计算缩放比例
    $(this).css("height", maxHeight); // 设定实际显示高度
    width = width * ratio; // 计算等比例缩放后的高度
    $(this).css("width", width * ratio); // 设定等比例缩放后的高度
    }
    });
    });

    如果不想加载jQuery库,可以用以下代码:

    以下为引用的内容:
    function ResizeImage(image, 插图最大宽度, 插图最大高度)
    {
    if (image.className == "Thumbnail")
    {
    w = image.width;
    h = image.height;
     
    if( w == 0 || h == 0 )
    {
    image.width = maxwidth;
    image.height = maxheight;
    }
    else if (w > h)
    {
    if (w > maxwidth) image.width = maxwidth;
    }
    else
    {
    if (h > maxheight) image.height = maxheight;
    }
     
    image.className = "ScaledThumbnail";
    }
    }

    采用纯JavaScript的话,麻烦点,需要手动为图片加上class=”Thumbnail”,但最终效果是一样的。

     转:提供北京网站优化

  • 相关阅读:
    企业视频会议EasyRTC视频云服务是如何满足不同企业多场景直播的?
    TSINGSEE青犀视频H265网页播放器EasyPlayerPro-Win如何通过配置文件实现自动播放等功能?
    TSINGSEE青犀视频自主研发H265播放器EasyPlayerPro-Win C++如何获取软件版本信息源码
    RTMP视频直播点播平台EasyDSS及企业视频通话会议系统EasyRTC内启动nginx 配置重定向功能介绍
    面向对象程序设计上机练习二(函数模板)
    2014暑假ACM训练总结
    codeforces 之 Little Pigs and Wolves
    SDUT 2766 小明传奇2
    0-1背包的总结
    POJ 2063 Investment (完全背包)
  • 原文地址:https://www.cnblogs.com/hun_dan/p/1639922.html
Copyright © 2011-2022 走看看