jquery 淡入、淡出、淡入 2

发布于 2024-11-02 16:05:09 字数 392 浏览 4 评论 0原文

我已经在这里阅读了一些内容,但我发帖是因为我似乎无法具体弄清楚我想要做什么。我尝试过调整我在这里找到的现有代码,但没有这样的运气。我不太精通 javascript,这可能没有帮助。我是一名正在康复的闪存设计师。

让我解释一下:

我有 2 个 div,一个带有非常大的图像,一个带有文本。理想情况下,我希望网页以这种方式运行:

  1. 屏幕上没有任何内容
  2. 在图像 div 中淡入淡出(我认为首先可能需要一些时间加载)
  3. 淡出图像 div
  4. 屏幕上没有任何内容(即:不是交叉淡入淡出)
  5. 在文本中淡入淡出div
  6. 将图像 div 永久保留在那里。

任何关于如何解决这个问题的想法将不胜感激!再次请原谅我的无知。

I'm done a bit of reading on here, but I'm posting because I can't seem to figure out specifically what I'm looking to do. I've tried tweaking existing code I've found here, but no such luck. It probably doesn't help that I'm not very well versed in javascript. I'm a recovering flash designer.

Let me explain:

I have 2 divs, one with a very large image, one with text. Ideally I'd like the webpage to function in this manner:

  1. nothing on screen
  2. fade in image div (and I think it might need some time to load first)
  3. fade out image div
  4. nothing on screen (ie: not a crossfade)
  5. fade in text div
  6. leave the image div there permanently.

Any thoughts on how to approach this would be much appreciated! Again, forgive my ignorance.

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

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

发布评论

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

评论(3

亢潮 2024-11-09 16:05:09

由于图像可能很大,因此请在图像上连接 .load() 事件,一旦图像成功加载,该事件就会被触发。从那里,只需使用 .fadeOut().fadeIn() 中的回调函数来显示/隐藏您的 div。

$(function() {
    $(".image img").load(function() {
        $(".image").fadeIn("slow", function() {
            $(this).fadeOut("slow", function() {
                $(".text").fadeIn("slow");
            });
        });
    });
});

jsfiddle 上的代码示例

Since the image could be large, wire up the .load() event on the image which will be fired once the image has loaded successfully. From there just use the callback function in the .fadeOut() and .fadeIn() to show/hide your divs.

$(function() {
    $(".image img").load(function() {
        $(".image").fadeIn("slow", function() {
            $(this).fadeOut("slow", function() {
                $(".text").fadeIn("slow");
            });
        });
    });
});

Code example on jsfiddle

荭秂 2024-11-09 16:05:09
$(document).ready(function(){

  $('#id-of-img').fadeIn(5000).delay(5000).fadeOut(5000); // 5000 is 5 seconds, change this as you wish
  $('#id-of-text').fadeIn(5000);

});

这需要 jQuery 1.4.2 或更高版本的 delay() 函数

- 编辑 -

只需重新阅读你的问题。你说“将图像 div 永久保留在那里”,你的意思是文本 div 吗?如果是这样,我所做的应该有效,如果不是,那么我真的不知道你的意思。

$(document).ready(function(){

  $('#id-of-img').fadeIn(5000).delay(5000).fadeOut(5000); // 5000 is 5 seconds, change this as you wish
  $('#id-of-text').fadeIn(5000);

});

This requires jQuery 1.4.2 or above for the delay() function

-- edit --

Just re-read your question. You say "leave the image div there permanently', did you mean the text div? If so, what I've done should work, if not then I don't really know what you mean.

╰沐子 2024-11-09 16:05:09

使用事件回调

您希望以在完成预加载时提供回调的方式加载图像:

var $textDiv = jQuery('.textDiv'); // contains the text

var img = new Image();
img.src = "images/myImageUrl.jpg";
img.onload = function() {
    jQuery(this).hide().appendTo('.imgDiv').fadeIn(300, function(){
        $(this).fadeOut(300, function() {
            $textDiv.fadeIn(300);
        }
    });

};

Using Event Callbacks

You want to load the image in a way that provides a callback when it has finished pre-loading:

var $textDiv = jQuery('.textDiv'); // contains the text

var img = new Image();
img.src = "images/myImageUrl.jpg";
img.onload = function() {
    jQuery(this).hide().appendTo('.imgDiv').fadeIn(300, function(){
        $(this).fadeOut(300, function() {
            $textDiv.fadeIn(300);
        }
    });

};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文