网址: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";
}
解决方案 »
- js中的字符串变量,最大能付多长的字符串?
- jquery样式问题
- JS操作select选框
- 单行交互问题
- 请问什么意思?
- ·关于图片的技巧问题?
- 求助,到了这步就没不会做了
- JAVA大型在线客服系统开发
- 也许有点难度的问题:怎么获取select的name值及所有的option value值(注意:select是动态的,所有信息都不得而知),然后将获取的值传给php的
- 在button上點擊時在onclick事件前還有什麼事件我不要mousemove 的事件!!!
- 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服务器希望和楼主共同解决
所以结果应该很明显了,你还这样说吗?那就想去吧。至于你这个算法为什么后来得出这样的结果,本来有心情还可以帮你看看具体是怎么回事,可你这样说,实在让我没心情再管你了。爱听谁听谁的吧。