文章内容图片过大,超出文章框架的jQuery解决办法

品味人生 • 发布于 2019-02-01 21:37:02

这个家伙很害羞,不想介绍自己!

可能大家经常会遇到,文章中的内容图片过大,超出了文章页面的宽度。轻则导致图片超出范围,如果没有设置框架宽度的话,还会导致版式严重错误。

当然,可以使用overflow-x: hidden; 加宽度的方法,让超出范围的图片被隐藏,以保证页面的正常,但是这样的话用户就看不到被切去的那部分图片了。

所以这时可以用JS的方式来解决。

分享一串jQuery代码解决这个问题。

代码如下:

window.onload = function(){
$('.text_type').find('img').each(function(){
var picWidth = parseInt($(this).width());
if(picWidth > 622)
{
var pW = $(this).width();
var pH = $(this).height();
var BL = pH / pW;
var outH = 622 * BL;
$(this).width(622);
$(this).height(outH);
}
})
};

解释一下代码的意思,以便于大家能够根据实际情况调用和修改。

window.onload = function(){  //窗口加载后执行函数

$('.text_type').find('img').each(function(){  //在class='text_type'的元素中,查找img标签(即图片元素),为每一个图片匹配,并执行函

var picWidth = parseInt($(this).width()); //设置变量picWidth的值为当前图片的宽度,并且转化为数字整型

if(picWidth > 622)  //这里的622是指你的页面框架的宽度,超出这个宽度则执行下面的函数进行修正

{

var pW = $(this).width();  //获取当前图片的宽度,赋值给pW

var pH = $(this).height(); //获取当前图片的宽度,赋值给pH

var BL = pH / pW;  //计算出图片的高宽比例

var outH = 622 * BL;  //根据已知的宽度622,按照比例计算出图片的高度

$(this).width(622);  //输出图片的新宽度

$(this).height(outH); //输出图片的新高度

}

})

};