iframe有时会出现并且不会消失

发布于 2024-11-07 13:05:28 字数 830 浏览 0 评论 0原文

我正在为我的朋友乐队制作一个快速网页,其中包含多个我想隐藏的嵌入式 YouTube iframe首先(使用jquery)。

问题是,通常(至少在 chrome/windows 上)iframe 会出现在左上角,就好像它们绝对位于左上角一样。然后,我可以在 javascript 控制台中输入 $("*").hide();,所有内容都会消失,但 iframe 不会。

在此处输入图像描述

问题似乎与我隐藏包含 div 的 iframe ($(" .details").css("显示","无");)。

这是我的代码。单击上面的链接查看完整的工作示例。

     $(document).ready(function() {
        $(".details").css("display","none");
        $("a.date").click(function() { 

            $(this).parent().children("div").toggle('slow');
            $(document.body).animate({
                'scrollTop':   $(this).offset().top
            },   2000);
        }); 
    });

任何建议/帮助将不胜感激。

I'm putting together a quick webpage for my friends band with multiple embeded youtube iframes that I want to be hidden at first (with jquery).

The issue is that often (on chrome/windows at least) the iframes will appear in the top left corner as though they were positioned absolutely to the top left. In the javascript console I can then type $("*").hide(); and everything will disappear but not the iframes.

enter image description here

The problem seems to be related to when I hide the iframes' containing divs ($(".details").css("display","none");).

Here is my code. Click the link above for the full working example.

     $(document).ready(function() {
        $(".details").css("display","none");
        $("a.date").click(function() { 

            $(this).parent().children("div").toggle('slow');
            $(document.body).animate({
                'scrollTop':   $(this).offset().top
            },   2000);
        }); 
    });

Any advice/help would be greatly appreciated.

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

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

发布评论

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

评论(1

久伴你 2024-11-14 13:05:28

您不能为每个用户点击延迟加载 iframe,而不是在页面加载时预加载所有内容吗?

就像在每个链接上绑定点击侦听器并将 iframe src 属性设置为相应的 youtube 链接一样?

例如:

在本示例中,假设您的 html 中有 10 个 YouTube URL 和相应的 10 个锚点。

与其为每个视频加载单独的 iframe,不如保留一个 src 属性根据用户单击的链接而变化的 iframe。

$('a.youtubelinks').click(function(event){
    $('iframe').attr('src', $(event.target).attr('src'));
});

奖励:您可以通过编程方式单击列表中的第一个链接,以便列表中的第一个视频将设置为 iram src

$('link1').click();

Cant you lazy load iframe for each user click rather than pre-loading everything on page load?

Like binding the click listener on each link and setting the iframe src attribute to the corresponding youtube link?

Eg:

For the sake of this example, lemme assume that you have 10 youtube URLs and correspondingly 10 anchors in you html.

Rather than loading a separate iframe for each of the video, why dont you keep a single iframe whose src attribute which change depending on which link the user clicks.

$('a.youtubelinks').click(function(event){
    $('iframe').attr('src', $(event.target).attr('src'));
});

BONUS: You can programatically click the first link in your list so that the first video in the list will be set as ifram src

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