JavaScript动态改变网页图片大小

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

我前段时间写的一篇文章就遇到过这种事情,后来用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”,但最终效果是一样的。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, ifream动态改变高度
, width
, image
, 高度
, 插图问题
, height
宽度
javascript动态网页、ios 动态改变字体大小、js动态改变字体大小、wpf 动态改变控件大小、mfc 动态改变框架大小,以便于您获取更多的相关知识。

时间: 2024-08-02 22:53:29

JavaScript动态改变网页图片大小的相关文章

javascript动态改变img的src属性图片不显示的解决方法_图象特效

首先讲下这个bug的出现的情况,页面中有 复制代码 代码如下: <a href="javascript:void(0)" onclick="document.getElementById('current').src='images/001.jpg';"> 这么一个a标签,onclick中的JS代码就是改变id为current的img标签的src属性,以达到动态切换图片的效果.可是不幸的是:IE是动态改变的图片的路径,但是图片却不显示出来,得右键&quo

JS根据浏览器窗口大小实时动态改变网页文字大小的方法_javascript技巧

本文实例讲述了JS根据浏览器窗口大小实时动态改变网页文字大小的方法.分享给大家供大家参考,具体如下: 目前,有了css3的rem,给我们的移动端开发带来了前所未有的改变,使得我们的开发更容易,更易兼容很多设备,但这个不在本文讨论的重点中,本文重点说说如何使用js来实时改变网页文字的大小. 代码如下: <script> /* 长宽占位 rem算法, 根据root的rem来计算各元素相对rem, 默认html 320/20 = 16px */ function placeholderPic(){

利用PHP和CSS改变网页文字大小

  用PHP和CSS改变网页文字大小--在设计网站的时候,要牢记一点:并不是所有的访问者都是神采奕奕的年轻人,而且他们也不一定完全熟悉Web浏览器的各种使用方法. 在设计网站的时候,要牢记一点:并不是所有的访问者都是神采奕奕的年轻人,而且他们也不一定完全熟悉Web浏览器的各种使用方法.聪明的设计者了解这一点,他们常常将各种特殊的可访问特性融入网站的设计中,这样,即使是年长者或是残疾人士都可以方便舒适地使用网站,而不必花费额外的力气. 文本大小调节器是最有效的可访问特性中的一个,任何网站都可能需要

鼠标选择动态改变网页背景颜色的JS代码_javascript技巧

采用Javascript实现,用鼠标点击相应颜色,动态改变网页背景颜色 这是截图 相应的Javascript源代码为: 复制代码 代码如下: var hex = new Array(6) hex[0] = "FF"hex[1] = "CC"hex[2] = "99"hex[3] = "66"hex[4] = "33"hex[5] = "00"function display(triple

JavaScript动态改变表格单元格内容的方法_javascript技巧

本文实例讲述了JavaScript动态改变表格单元格内容的方法.分享给大家供大家参考.具体如下: JavaScript动态改变表格单元格的内容,下面的代码通过修改单元格的innerHTML来修改单元格内容 <!DOCTYPE html> <html> <head> <script> function changeContent() { var x=document.getElementById('myTable').rows[0].cells; x[0].i

JavaScript动态改变表格单元格内容的方法

 这篇文章主要介绍了JavaScript动态改变表格单元格内容的方法,涉及javascript操作html中table表格的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript动态改变表格单元格内容的方法.分享给大家供大家参考.具体如下: JavaScript动态改变表格单元格的内容,下面的代码通过修改单元格的innerHTML来修改单元格内容 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Javascript 动态改变imput type属性_基础知识

Javascript 动态改变imput type属性: 代码实现: <script type="text/javascript"> function shoppw(thebox){ var ps = document.getElementById('ps'); var pass = document.getElementById('pass'); ps.removeChild(pass); var psImput = document.createElement(&quo

分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小

原文:分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小  /** * Reallocates an array with a new size, and copies the contents * * of the old array to the new array. * * @param oldArray the old array, to be reallocated. * * @param newSize the new array size. * * @retur

JavaScript动态改变div属性的实现方法_javascript技巧

本文实例讲述了JavaScript动态改变div属性的实现方法.分享给大家供大家参考.具体如下: 这里可以通过JS动态改变div属性,样式等 <script type="text/javascript"> var oBox = document.getElementById('box'); var oDiv = document.getElementById('div1'); var aInput = document.getElementsByTagName('input