网址:http://www.psa001.com大家可以分别点击 “ 最新图片 | 热门作品 | 精品赏析 | 推荐作品 …… ”会发现有一部分图片没有显示出来,一部分正别显示。根据检测,未显示出的图片是正常。因为一刷新当前页面,即可显示。(这应该可以说明图片本身是不有问题的)
问题与老贴说的问题相同。
老贴子位置:http://topic.csdn.net/u/20101005/09/39153bbc-0da6-4fe5-a5a3-ebbb94438631.html
巧合的是这两个网站我为了无论是横向的长图还是纵向的长图都 按比例缩放到适应相框大小.用了以下一段 JS,不知是否有问题,望各位指点。暂排除网速问题,我在多处网速快的地方测试过。
HTML: <img src="abc/20110226221853_thumb.jpg" border="0" onload="changeImageSize(this,140,105);" />function changeImageSize(obj,pw,ph)
{
var w=obj.width; //图片宽度
var h=obj.height; //图片高度 var l=w/h; //图片宽度高度比率
var pl=pw/ph; //容器宽度高度比率
if(l>=pl)
{
if(w>pw)
{
w=pw;
h=w/l
}
}
else
{
if(h>ph)
{
h=ph;
w=h*l;
}
}
obj.style.width=Math.round(w)+"px";
obj.style.height=Math.round(h)+"px";
}
问题与老贴说的问题相同。
老贴子位置:http://topic.csdn.net/u/20101005/09/39153bbc-0da6-4fe5-a5a3-ebbb94438631.html
巧合的是这两个网站我为了无论是横向的长图还是纵向的长图都 按比例缩放到适应相框大小.用了以下一段 JS,不知是否有问题,望各位指点。暂排除网速问题,我在多处网速快的地方测试过。
HTML: <img src="abc/20110226221853_thumb.jpg" border="0" onload="changeImageSize(this,140,105);" />function changeImageSize(obj,pw,ph)
{
var w=obj.width; //图片宽度
var h=obj.height; //图片高度 var l=w/h; //图片宽度高度比率
var pl=pw/ph; //容器宽度高度比率
if(l>=pl)
{
if(w>pw)
{
w=pw;
h=w/l
}
}
else
{
if(h>ph)
{
h=ph;
w=h*l;
}
}
obj.style.width=Math.round(w)+"px";
obj.style.height=Math.round(h)+"px";
}
解决方案 »
- jqgrid treeGrid Json数据 怎么默认全部展开啊
- 请教js重写select的option
- iframe宽度和div配合问题,期待高手。
- javascript 缺少对象 错误 奇怪!
- IE不能触发事件
- JS打开新页问题<select name="select" onChange="document.location.href=this.value">这个只能在本页打开
- js 调动层的问题,请高手指教了
- 为什么我的鼠标按键值不对呢?
- js中有关日起转换的函数,有无日期比较函数
- javascript请指点 这个代码看不懂。
- jQuery UI的Dialog时,Dialog刚刚弹出,LinkButton的事件就迫不及待地触发掉
- 请教一个js问题或者有什么好的办法去解决
这里改为这样试试
<img onload="changeImageSize(this,140,105);" src="abc/20110226221853_thumb.jpg" border="0" />
1.使用lazyload方式。详细请看我的博客
-----------------------------------------------
2.使用每个图片逐渐加载方式。
这里我采用了jquery的一些方法,你也可以改写为普通JS方法$(function(){
for(i=0;i<$(".sb img").length;i++)
{
$(".sb img:eq("+i+")").ready(){
function(){
changeImageSize($(".sb img:eq("+i+")"),140,105);
}
}
}
});另外说一点,在你的changeImageSize方法里,检查一下obj的类型是否为object类型,以便于确定参数的有效性。希望能解决你的问题
还是公式有问题!
function theforever_csdn(obj,pw,ph) {
var w=300,h=200; //不取图片尺寸,直接赋值,随意传参不影响
var l=w/h; //图片宽度高度比率
var pl=4/3; //容器宽度高度比率,直接设置,随意传参不影响
if(l>=pl)
{
if(w>pw)
{
w=pw;
h=w/l
}
}
else
{
if(h>ph)
{
h=ph;
w=h*l;
}
}
alert(w+"px"+'-----'+h+"px");
}
</script>
结果输出,宽4px,高3px。当然看不见。与传递进来的图片尺寸是否初始成功无关。
刷新的时候,不会再执行图片的onload事件,所以才显示了图片的原尺寸。
绕了半天倒底是哪的错哦。“刷新的时候,不会再执行图片的onload事件,所以才显示了图片的原尺寸。” 如果真是这样的话,那显示的时候就没有 changeImageSize() 了呀。那又为什么显示出来的所谓的“原图”可以容器中按比例显示出来。没有撑大,也没有被容器裁剪?
4搂的方法研究中……
我用的是iis5.0服务器希望和楼主共同解决
所以结果应该很明显了,你还这样说吗?那就想去吧。至于你这个算法为什么后来得出这样的结果,本来有心情还可以帮你看看具体是怎么回事,可你这样说,实在让我没心情再管你了。爱听谁听谁的吧。