js 图片加载时 按比例设置图片宽高_WordPress使用jQuery 按比例调整图片高度/宽度...

同学们,今天我们来谈谈WordPress主题制作的细节问题:限制文章中图片的最大宽度,防止图片“撑破”页面,用的比较多的方法是在CSS中使用 overflow:hidden 和 max-width:600px 来限制,但是效果不理想,倡萌今天分享一下比较完美的方法: jQuery 按比例调整图片高度/宽度。

2013-4-14更新:使用 max-width 也是可以按等比缩小图片的。以前倡萌之所以任务无法实现,是因为我自己使用WLW离线发布时,使用WLW定义了图片的格式,而没办法继承样式表的样式。特此说明,希望大家不要被误导!

三种方法的效果比较

从上图可以看出,overflow 仅仅是隐藏了部分图片,导致图片显示不全;max-width 只是限制的最大宽度,图片压缩变形;而jQuery 却可以等比例调整图片的高和宽,图片没有变形,这就是我们要的效果!

等比例调整图片的高和宽

方法一:jQuery 代码(荐)

现在大部分的网站都使用了 jQuery 库,所以我们只需添加下面的 jQuery 代码即可实现:

$(document).ready(function() {

$('.post img').each(function() {

var maxWidth = 600; // 图片最大宽度

var maxHeight = 2000; // 图片最大高度

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); // 设定等比例缩放后的高度

}

});

});

$(document).ready(function() {

$('.post img').each(function() {

var maxWidth = 600; // 图片最大宽度

var maxHeight = 2000; // 图片最大高度

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); // 设定等比例缩放后的高度

}

});

});

实际使用时,注意修改$('.post img') 为你文章内容的class值,以及最大宽度、高度。

方法二:纯Javascript代码

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";

}

}

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";

}

}

实现效果和上面一样,不需要引用 jQuery 库,请设置最大高度和宽度值;在发布文章时,要手动给每张图片添加一个 class=”Thumbnail”。

好了,今天课程到此为止,如果你有更好的方法,欢迎投稿分享!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

分享到:

一个文科IT宅男,喜欢折腾WordPress和被它折腾 ^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值