癫狂蚊子的痴狂世界 - 一切对我而言都是游戏! Everything is Game!

防止图片过大的方法

Posted on 三月 15, 2010 - Filed Under 我的代码世界 | Leave a Comment

在制作网页的时候,经常会遇到图片过大,而导致整个网页变形的情况,特别是在一些CMS中的新闻页,上传图片的大小是没有办法去控制的,但是我们可以用JS的办法来控制指定元素内的图片大小。

演示地址见:江西威敏作品页http://www.jxweimin.com/work/201003/shanghaijiakehuoyundaili_36.html

var maxwidth=600;
function set_img_size(obj, width)
{
if (!obj) return ;
if (!width) {
width = obj.clientWidth * 0.9;
if (width < 400) return; /*设置图片的限定宽度*/
}
img_items = obj.getElementsByTagName("img")
if (img_items) {
for (i=0; i var s_width = img_items[i].width;
var s_height = img_items[i].height;
if (s_width > width) {
img_items[i].style.width = width + "px";
if (s_height == img_items[i].height) {
img_items[i].style.height = ((width / s_width) * img_items[i].height) + "px";
}
img_items[i].onclick = function() {window.open(this.src)};
img_items[i].style.cursor = "pointer";
img_items[i].alt = "点击查看原始尺寸";
}
}
}
}

function selfadaptation_size() {
if (typeof(content_img_width) == 'undefined') {
set_img_size(document.getElementById("imgslist"),maxwidth); /*控制图片所在的元素ID号*/
} else {
set_img_size(document.getElementById("imgslist"), content_img_width);
}/*控制图片所在的元素ID号*/
set_img_size(document.getElementById("imgslist"),maxwidth); /*控制图片所在的元素ID号*/
}

if (window.addEventListener) {
window.addEventListener("load", selfadaptation_size, false);
} else if (window.attachEvent) {
window.attachEvent("onload", selfadaptation_size);
}else {
window.onload = selfadaptation_size;
}

Leave a Reply