用htc作一个支持HTML的tooltip 但是遇到了困难!!?

Go_Rush Go_Rush 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


这是我的html文件代码


-----

<span label="测试文字<a href='http://www.371.net'>www.371.net</a><br><br>111<button>按钮</button>其它文字" style="behavior: url('showtip.htc');">鼠标过来看看</span>


-----


我的思路是这样的。
把tooltip的内容(支持html)定义在span的label属性里面,

1.当鼠标划入<span>的时侯,用document.createElement建一个div,
并让他在鼠标处显示.
2.当鼠标离开<span>的时候,删除这个div
(注:但是如果鼠标离开了span,进入了div,则不进行删除操作)

3.在div的鼠标离开事件中,删除该div
???但是当鼠标划入div内部的一个button或者链接的时候,
也会触发div的mouseout事件,从而导致div的删除,我应该怎么做才能避免这种现象的发生???



以下是 showtip.htc的代码

<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="element.init()" />
<PUBLIC:METHOD NAME="init" />
<SCRIPT Language="javascript">
var divExist = false;
var oDivLabel;

function ShowLabel(){
if (!divExist) {
oDivLabel = element.document.createElement("DIV");
oDivLabel.innerHTML = element.getAttribute("LABEL");
oDivLabel.style.cssText="border : solid gray thin;background-color:rgb(229,229,229);position:absolute;width:222px"

oDivLabel.attachEvent("onmouseout",function(){

//如果鼠标进入div内部的一个tag,我想放弃处理,但是为什么这句没有效果?
//if (oDivLabel.contains(event.srcElement)) return;

if (divExist) element.document.body.removeChild(oDivLabel);
divExist = false;
});
element.document.body.appendChild(oDivLabel);
divExist = true;
}
oDivLabel.style.left = event.clientX;
oDivLabel.style.top = event.clientY;
}

function ClearLabel(){
//如果鼠标离开了span,进入了div,则放弃处理,不进行删除操作
if (event.clientX>oDivLabel.offsetLeft && event.clientY>oDivLabel.offsetTop) return false;

if (divExist) element.document.body.removeChild(oDivLabel);
divExist = false;
}

function init(){
element.attachEvent("onmouseover",ShowLabel);
element.attachEvent("onmouseout",ClearLabel);
}
</SCRIPT>
</PUBLIC:COMPONENT>


...全文

相关推荐

29Linux基础命令详解——用户管理.docx

29Linux基础命令详解——用户管理

云计算练习生

科技服务机构如何通过数据分析增强服务竞争力?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip

vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip

源码论文专家

车辆缺陷分割数据集4000张json格式.zip

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证

不会仰游的河马君

高校如何利用技术转移服务转化科研成果并提升影响力?.docx

高校如何利用技术转移服务转化科研成果并提升影响力?

BIZKEEN
评论 5
收藏 已收藏
分享
返回顶部
Go_Rush
JavaScript 87,984 成员 224,681 内容