gpt4 book ai didi

javascript - jquery animate 产生奇怪的结果

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

我选择了一些图标,当我将鼠标悬停在它们上方时,会触发一个动画,其中涉及对不同图像的左侧和顶部位置进行动画处理。然后,当我将鼠标移出图标时,图像返回到原始状态。问题是,如果我快速地将光标移动到所有图标上,动画图像的左侧和顶部位置不会按预期返回到其初始状态。

这是代码 - 有什么想法可以整理它并防止出现此问题以及任何进一步的问题吗?

$("div").hover( function() {

$(this).find("span").slideDown(100);
$(this).css("background-color","#89A7BA");
var currentlyHovered = $(this).find("img").attr("id").replace("-icon", "");
$("img#" + currentlyHovered + "-spot").animate({
width: "17px",
height: "17px",
left: parseInt($("img#" + currentlyHovered + "-spot").css("left")) - 5,
top: parseInt($("img#" + currentlyHovered + "-spot").css("top")) - 5
}, 100);


}, function() {

$(this).find("span").slideUp(100);
$(this).css("background-color","#000");
$("img#" + currentlyHovered + "-spot").animate({
width: "7px",
height: "7px",
left: parseInt($("img#" + currentlyHovered + "-spot").css("left")) + 5,
top: parseInt($("img#" + currentlyHovered + "-spot").css("top")) + 5
}, 100);
currentlyHovered = "";

});

对于任何感兴趣的人,这里是完整的解决方案。

$.fn.hoverAnimation = function () {
return this.each(function () {
var currentlyHovered = $(this).find("img").attr("id").replace("-icon", "");
var originalLeft = parseInt($("img#" + currentlyHovered + "-spot").css("left"));
var originalTop = parseInt($("img#" + currentlyHovered + "-spot").css("top"));
return $(this).hover(function () {
$(this).find("span").slideDown(100);
$(this).css("background-color","#89A7BA");
$("img#" + currentlyHovered + "-spot").animate({
width: "17px",
height: "17px",
left: originalLeft - 5,
top: originalTop - 5
}, 100);
},function () {
$(this).find("span").slideUp(100);
$(this).css("background-color","#000");
$("img#" + currentlyHovered + "-spot").animate({
width: "7px",
height: "7px",
left: originalLeft,
top: originalTop
}, 100);
});
});
}

$("div").hoverAnimation();

最佳答案

我认为它没有返回到原始位置的原因是原始位置被视为动画中途。我建议构建一个简单的插件来为您完成此操作:

$.fn.hoverAnimation = function () {
return this.each(function () {
var originalLeft = parseInt($("img#" + $(this).find(img).attr(id) + "-spot").css("left"));
var originalTop = parseInt($("img#" + $(this).find(img).attr(id) + "-spot").css("top"));
return $(this).hover(function () {
...
},function () {
...
});
}
};

$('div').hoverAnimation();

关于javascript - jquery animate 产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410471/

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