gpt4 book ai didi

javascript - 删除 Javascript 工具提示偏移以获得更好的悬停增长效果

转载 作者:行者123 更新时间:2023-11-28 10:25:48 24 4
gpt4 key购买 nike

我正在努力完成一些事情,并且非常感谢所提供的任何和所有帮助!

我有一个工具提示代码,当鼠标悬停在图像上时,图像会通过 JS 出现在工具提示中并具有偏移位置。我希望工具提示中的图像不带偏移地显示,而不是偏移工具提示中悬停图像的位置,EXACTLY like the hover effect you see in this example 。我需要工具提示的位置根本不偏移,只需正好位于图像顶部即可。我不确定如何实现这一点,因为示例代码使用 css,并且我需要它与 JS 中的此工具提示一起使用。

这是工具提示代码:

too = tooo = bi = an = null; document.onmousemove = document.onmouseover = toolt;
function toolt(a) {
if(bi) {
y = bi.offsetTop+bi.height-20;
x = bi.offsetLeft+bi.width-12;
} else {
y = (document.all) ? window.event.y + document.body.scrollTop : a.pageY;
x = (document.all) ? window.event.x + document.body.scrollLeft : a.pageX;
}
a = window.innerHeight ? window.innerHeight : document.body.offsetHeight;
b = window.innerWidth ? window.innerWidth : document.body.offsetWidth;
if (too != null) {
if(too.offsetWidth+x+35-document.body.scrollLeft > b) x=document.body.scrollLeft+b-too.offsetWidth-35; too.style.left = (x+12)+"px";
if(too.offsetHeight+y+40-document.body.scrollTop > a) y=y-too.offsetHeight-30; too.style.top = (y+20)+"px"; }
}
function htoo(i) { if(too) too.style.display = "none"; if(bi) bi.style.display = an ? "block" : "none"; tooo = false;}
function stoo(i) { if(tooo) tooo.style.display = "none"; if(bi) bi.style.display = an ? "block" : "none"; too = tooo = document.getElementById(i); too.style.display = "block"; if(bi = document.getElementById(i+"b")) bi.style.display="block";
}

如何使用给定的代码来完成此任务,有什么想法吗?

最佳答案

您当然可以将其调整得更好,但这是一个概念证明
注意:您的图像样式应为position:relative

用法 ( Demo )

FancyZoom("container");

构造函数

function FancyZoom(container, options) {
container = container || document;
if (typeof container == "string") {
container = document.getElementById(container);
}

function isNodeName(el, name) {
return el.nodeName.toLowerCase() === name;
}

function getTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}

// image {mouseover} event handler (delegated)
container.onmouseover = function(e) {
var el = getTarget(e);
if (isNodeName(el, "img")) {
zoomIn(el);
// image {mouseout} event handler
el.onmouseout = function(e) {
zoomOut(el);
el.onmouseout = null;
};
}
};
}

动画 ( emile.js )

function zoomIn(thumb) {
thumb.style.zIndex = 10;
emile( thumb,
"width:" + 174 + "px;" +
"height:" + 174 + "px;" +
"margin-left:" + -37 + "px;" +
"margin-top:" + -37 + "px;",
{ duration: 200 }
);
}

function zoomOut(thumb) {
thumb.style.zIndex = 1;
emile( thumb,
"width:" + 100 + "px;" +
"height:" + 100 + "px;" +
"margin-left:" + 0 + "px;" +
"margin-top:" + 0 + "px;",
{ duration: 100 }
);

}

测试平台:IE7+、FF2+、Safari 4+、Chrome、Opera

关于javascript - 删除 Javascript 工具提示偏移以获得更好的悬停增长效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com