jQuery 淡入淡出上面的图像并更改后面的 CSS 背景图像

发布于 2024-12-03 16:51:47 字数 1039 浏览 0 评论 0原文

我有多个图标 IMG 在带有 css/背景图像的 UL 中并排列出。

当您将鼠标悬停在单个图标上时,IMG 会淡出为 0,然后 css/背景图像将变得可见。

我可以让它很好地淡出,但背景图像保持可见,并在 IMG 后面显示几个像素(假设主 IMG 是黑色,css/背景图像是橙色)。

如果我将背景图像位置设置为 0 0 那么它会在 IMG 的 fadeTo 完成之前消失。

所以基本上我希望背景位置在“正常,1”完成后改变。

我希望这是有道理的。

有人可以帮忙吗?

这是代码:

$("ul.socials li").hover(function() { //On hover...

    var thumbOver = $(this).find("img").attr("src"); //Get image url and assign it to 'thumbOver'

    //Set a background image(thumbOver) on the <a> tag - Set position to bottom
    $(this).find("a.thumb").css({'background' : 'url(' + thumbOver + ') no-repeat 0 -37px'});

    //Animate the image to 0 opacity (fade it out)
    $(this).find("span").stop().fadeTo('normal', 0 , function() {
        $(this).hide() //Hide the image after fade
    });
} , function() { //on hover out...
    //Fade the image to full opacity 
    $(this).find("span").stop().fadeTo('normal', 1).show();
    $(this).find("a.thumb").css({'background-position' : '0 0'});
});

I have multiple icon IMG's listed side by side in a UL with css/background-images.

When you hover over a single icon the IMG fades to 0 and then the css/background-image becomes visible.

I can get it to fade back fine, but the background-image stays visible and shows a few pixels behind the IMG (lets say the main IMG is black and the css/background-image is orange).

If I set the background-image position to 0 0 then it disappears before the fadeTo of the IMG is finished.

So basically I want the background-position to change once the "normal, 1" has finished.

I hope that makes sense.

Can anybody help?

Here is the code:

$("ul.socials li").hover(function() { //On hover...

    var thumbOver = $(this).find("img").attr("src"); //Get image url and assign it to 'thumbOver'

    //Set a background image(thumbOver) on the <a> tag - Set position to bottom
    $(this).find("a.thumb").css({'background' : 'url(' + thumbOver + ') no-repeat 0 -37px'});

    //Animate the image to 0 opacity (fade it out)
    $(this).find("span").stop().fadeTo('normal', 0 , function() {
        $(this).hide() //Hide the image after fade
    });
} , function() { //on hover out...
    //Fade the image to full opacity 
    $(this).find("span").stop().fadeTo('normal', 1).show();
    $(this).find("a.thumb").css({'background-position' : '0 0'});
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只是在用心讲痛 2024-12-10 16:51:47

“如果我将背景图像位置设置为 0 0,那么它会在 IMG 的 fadeTo 完成之前消失。所以基本上我希望背景位置在“正常,1”完成后立即更改。”

fadeTo 回调中更改背景位置:

//Fade the image to full opacity
var $li = $(this);
$(this).find("span").stop().fadeTo('normal', 1, function() { 
   $li.find("a.thumb").css({'background-position' : '0 0'});
}).show();

//Fade the image to full opacity
var $li = $(this);
$(this).find("span").stop().fadeTo('normal', 1, function() { 
   $(this).parent().find("a.thumb").css({'background-position' : '0 0'});
}).show();

"If I set the background-image position to 0 0 then it disappears before the fadeTo of the IMG is finished. So basically I want the background-position to change once the "normal, 1" has finished."

Change your background position on fadeTo callback:

//Fade the image to full opacity
var $li = $(this);
$(this).find("span").stop().fadeTo('normal', 1, function() { 
   $li.find("a.thumb").css({'background-position' : '0 0'});
}).show();

or

//Fade the image to full opacity
var $li = $(this);
$(this).find("span").stop().fadeTo('normal', 1, function() { 
   $(this).parent().find("a.thumb").css({'background-position' : '0 0'});
}).show();
红衣飘飘貌似仙 2024-12-10 16:51:47

您想向 .show() 添加回调并在演出完成后更改背景位置,如下所示

$(this).find("span").stop().fadeTo('normal', 1).show('slow', function() {
    $(this).find("a.thumb").css({'background-position' : '0 0'});
  });

you want to add a callback to .show() and change background position after the show is completed like so

$(this).find("span").stop().fadeTo('normal', 1).show('slow', function() {
    $(this).find("a.thumb").css({'background-position' : '0 0'});
  });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文