jquery 获取html <img /> 位置时出错问题

简介:   如图所示,这样端口小图片都是通过jquery html()方法设置的(参数html就是画整个图片的html字符串),如图:   但是出现图片没有完全渲染完的问题,如图:   从图中可以看出在代码运行到断点的时候,图中的下行小图片是没有渲染完成的。

 

如图所示,这样端口小图片都是通过jquery html()方法设置的(参数html就是画整个图片的html字符串),如图:

 

但是出现图片没有完全渲染完的问题,如图:

 

从图中可以看出在代码运行到断点的时候,图中的下行小图片是没有渲染完成的。

然后公司同事李蕾猜测可能是上行图片加载快有缓存所以都显示出来,但是下行图片和上行图片不是同一个图片,所以还没有显示出来,于是就出现这样的问题,如图:

如图所示,这些图标是根据小图片位置画出来的,代码如下:

//画hub图
var drawnHub = function () {
    var p;
    for (var i = 0; i < portarr.length; i++) {
        var count = portarr[i].id.split('_')[3]; //获取端口绑定数量
        var s = $("#" + portarr[i].id);
        p = s.position(); //获取坐标点
        if (portarr[i].imgclass == "zwimg24") {
            p.left += 100;
        }
        if (portarr[i].imgclass == "zwimg48") {
            p.left += 10;
        }
        //console.log("id=" + portarr[i].id + ",left=" + p.left + ",top=" + p.top);
        if (portarr[i].state == "up") {
            s.before("<div style='width:30px;position:absolute;z-index:1;left:" + (p.left + 15) + "px;top:-40px'><div style='width:1px;height:40px;background-color:#273239'></div>" +
                "</div><img style='cursor:pointer;width:30px;height:30px;position:absolute;left:" + (p.left) + "px;top:-65px' src='../Images/network_hub_up.png' onclick='openPortDlg(\"" + portarr[i].click + "\")' />" +
                "<div style='width:30px;text-align:center;position:absolute;left:" + (p.left) + "px;top:-75px'>" + count + "</div>");
        } else {
            s.before("<div style='width:30px;position:absolute;left:" + (p.left + 15) + "px;top:31px'><div style='width:1px;height:40px;background-color:#273239'></div>" +
                "</div><img style='cursor:pointer;width:30px;height:30px;position:absolute;left:" + (p.left) + "px;top:64px' src='../Images/network_hub_down.png' onclick='openPortDlg(\"" + portarr[i].click + "\")' />" +
                "<div style='width:30px;text-align:center;position:absolute;left:" + (p.left) + "px;top:87px'>" + count + "</div>");
        }
    }
    //console.log("======================================================");
};

我们再把问题走一遍:jquery .html()方法设置<img>的时候下行图片没有渲染完成,上行渲染完成,于是再画hub(就是图片上的白色图标)的时候上行的坐标位置能获取到,但是下行图标位置获取不到,所以就出现这样的错乱问题,那么现在的问题就是如何解决这个问题,按照我的思路就是图标没有显示,但是我们可以用一个div 或者其它的标签放到<img>的上层定位,这样不就可以了吗,就算img没有渲染完成,但是上层已经渲染完成了,我可以根据上层渲染完成的位置画hub这样就ok了,果然,问题就是这样解决的,如本篇文章一开始的图片,上面显示的<li>就是当作<img>的上层,这样显示就没有问题了。

写下这篇文章是预防以后出现类似的问题,也给友友们提供解决方法参考。

 

目录
相关文章
|
8月前
|
Web App开发 前端开发 安全
CSS背景图和HTML的<img>标签怎么选?
CSS背景图和HTML的<img>标签怎么选?
110 0
|
4天前
|
JavaScript
jQuery实现的卡片式翻转时钟HTML源码
jQuery实现的卡片式翻转时钟HTML源码
11 0
jQuery实现的卡片式翻转时钟HTML源码
|
14天前
|
JavaScript
jQuery+HTML5实现的微信大转盘抽奖源码
这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,代码里面有详细的注释,可以修改文字或者二次开发都可以
32 11
|
3月前
|
XML JavaScript 数据格式
jquery中html()方法的使用
jquery中html()方法的使用
41 1
|
4月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
30 2
HTML基础知识(1)常用标签的使用 h、p、img、meta、a、iframe...
该博客文章详细介绍了HTML的基础知识,包括注释、标签属性、常用标签、实体、图片引入、meta标签、内联框架、超链接的使用,并通过代码示例和测试结果截图展示了这些元素在网页中的应用效果。
HTML基础知识(1)常用标签的使用 h、p、img、meta、a、iframe...
|
4月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
38 0
|
5月前
|
JSON JavaScript 数据格式
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
57 0
|
7月前
|
存储 前端开发 UED
HTML中的<img>标签使用指南
HTML中的<img>标签使用指南
195 3
|
6月前
|
XML 数据采集 机器学习/深度学习
使用 XPath 定位 HTML 中的 img 标签
使用 XPath 定位 HTML 中的 img 标签

热门文章

最新文章