求问 这段回调 为什么不能执行哈

weixin_39294595 2017-06-24 07:25:32
var t =this.getElementsByid('image6')
var div =this.getElementsByid('div41')
function imgLoad(img, callback) {
var timer = setInterval(function() {
if (img.complete) {
callback(img)
clearInterval(timer)
}
}, 50)
}

imgLoad(t, function() {
for(i=0;i<t.length;i++){
var width = t[i].style.width////得到图片的宽度
var height = t[i].style.height;//得到图片的高度
var Maxwidth = div[i].style.width;//获得最大宽度
var Maxheight = div[i].style.height;///获得最大高度
var margnheight;
var newheight;
t[i].style.width =Maxwidth
newheight = parseIn(height) / (parseIn(width) /parseIn( Maxwidth));
if(parseIn(newheight)>parseIn(Maxheight)){
margnheight = (parseIn(Maxheight) - parseIn(newheight)) / 2;
$(t[i]).css("margin-top", margnheight);;
}
} })
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
q2045377 2017-06-24
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
先确保this.getElementsByid('image6')返回的是集合数组。

function imgLoad(imgs, callback) {
	function loop(i) {
		if (i>=imgs.length) {
			callback(imgs);
			return;
		}
        if (imgs[i].complete) {
        	loop(i+1);
        } else {
        	imgs[i].onload = function () {
        		loop(i+1);
        	}
        }
	}
	loop(0);
}
好像没用哈 也不报错
天际的海浪 2017-06-24
  • 打赏
  • 举报
回复
先确保this.getElementsByid('image6')返回的是集合数组。

function imgLoad(imgs, callback) {
	function loop(i) {
		if (i>=imgs.length) {
			callback(imgs);
			return;
		}
        if (imgs[i].complete) {
        	loop(i+1);
        } else {
        	imgs[i].onload = function () {
        		loop(i+1);
        	}
        }
	}
	loop(0);
}
weixin_39294595 2017-06-24
  • 打赏
  • 举报
回复
单个 img执行没问题 改成img【i】 for循环就出问题了,,,是让图片上下居中

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧