【问题标题】:z-index and iframe issue - dropdown menuz-index 和 iframe 问题 - 下拉菜单
【发布时间】:2011-01-04 21:11:01
【问题描述】:

嘿。我的下拉菜单和 iframe 有一个相当令人费解的问题。

我已将 1000 的 z-index 应用于下拉菜单,但包含 youtube 视频的 iframe 仍显示在菜单上方。请在下面亲自查看(检查“简码”菜单):

http://www.matthewruddy.com/demo/?page_id=765

我不知道为什么会这样。谁能帮我吗?如果有帮助,这里是 CSS:

#jquery-dropdown {
position: absolute;
bottom: 0;
right: 10px;
}

#jquery-dropdown ul {
margin: 0;
padding: 0;
list-style: none;
}

#jquery-dropdown ul li {
margin: 0;
padding: 15px 10px 15px 10px;
position: relative;
float: left;
}

#jquery-dropdown ul li a {
display: block;
text-decoration: none;
font-weight: bold;
font-size: 13px;
color: #707070;
outline: none;
}

#jquery-dropdown ul li ul {
position: absolute;
left: -10px;
top: 46px;
display: none;
background: #f4f4f4;
border: 1px solid #e1e1e1;
border-top: none;
z-index: 1000;
padding: 5px 0;
-moz-box-shadow: 1px 2px 3px #a4a4a4;
-webkit-box-shadow: 1px 2px 3px #a4a4a4;
box-shadow: 1px 2px 3px #a4a4a4;
}

#jquery-dropdown ul li ul li {
margin: 0;
padding: 0;
float: none;
position: relative;
z-index: 1000;
}

#jquery-dropdown ul li ul li a {
width: 180px;
padding: 10px;
z-index: 1000;
}

#jquery-dropdown ul li ul li a:hover {
background: #e0e0e0;
}

【问题讨论】:

    标签: jquery iframe z-index


    【解决方案1】:

    如果您想继续使用 iframe 嵌入 Youtube 视频的方法,您可以通过查询变量 ?wmode=transparent 简单地设置 WMODE。这是一个例子:

    <iframe width="580" height="435" src="http://www.youtube.com/embed/fCH7B9m4A4M" frameborder="0" allowfullscreen></iframe>
    

    会变成:

    <iframe width="580" height="435" src="http://www.youtube.com/embed/fCH7B9m4A4M?wmode=transparent" frameborder="0" allowfullscreen></iframe>
    

    记得检查 Youtube URL 是否有任何已经存在的查询变量。如果已经有?something...,则将?wmode=transparent 更改为&amp;wmode=transparent 并添加到最后。

    【讨论】:

      【解决方案2】:

      我会使用 &lt;object&gt; 标签而不是 Iframe 来嵌入 youtube 视频。然后,我会在&lt;object&gt; 中使用&lt;param name="wmode" value="transparent"&gt;。像这样的:

      <object width="640" height="385"><param name="wmode" value="transparent"></param><param name="movie" value="http://www.youtube.com/v/Q5im0Ssyyus?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Q5im0Ssyyus?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
      

      Here is some more info

      【讨论】:

      【解决方案3】:

      如果 ?wmode=transparent 不起作用,请尝试改用 opaque。这对我来说很有效。

      示例:

      (function ($) {
          $ = jQuery;
      
          $(function () {
              $video = $("#SomeWrapper> iframe");
              $srcVal = $video.attr('src');
              appendedVal = $srcVal + "?wmode=opaque";
              $video.attr('src',appendedVal);
          });
       })(jQuery);
      

      【讨论】:

        【解决方案4】:

        在我的机器(Windows 7 上的 Chrome)上,显示 YouTube 视频的插件是与浏览器内容窗口不同的本机窗口。我认为当一个插件以这种方式运行时,它会在浏览器中的任何其他内容之上呈现,忽略 CSS z-index 值。

        Silverlight 插件有一个设置可以让它在浏览器内容窗口中运行,而不是在它自己的本机窗口中运行。您可以尝试为嵌入式 YouTube 播放器找到类似的设置。

        【讨论】:

          【解决方案5】:

          Flash 并不总是在所有浏览器上与 z-index 配合得很好,从我的 firefox 中看起来不错。 http://manisheriar.com/blog/flash_objects_and_z_index

          编辑

          Why doesn't Z-Index in IE render the way it's supposed to over a Flash Movie?

          【讨论】:

            【解决方案6】:

            这是一个 iframe 问题,而不是 z-index。我遇到了同样的问题,我只是将 ?wmode=transparent 添加到 YouTube embed i frame src url。像这样:

             <div class="tube_box">
                      <iframe width="500" height="300" src="https://www.youtube.com/embed/ngKxlkoZBLA**?wmode=transparent**" frameborder="0" allowfullscreen ></iframe>
                </div>
            
            It Works in all browser IE,Firefox and chrome 
            
            Here My Css :
            
            
            .tube_box{
                float:left;
                width:515px;
                border:5px groove #d1e7ed;
                border-radius:11px;
                margin-bottom:10px;
                color:#b8b8bf;
                padding:10px; 
                z-index: 1000 ;
            
            }
            
            
            If you add the position:relative,absolute or anything again the drop down hiding.So avoid position its better.Another thing is  not important  to add the z-index,Without z-index also it will work .Hope so it will really helpful for you
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-09-19
              • 1970-01-01
              • 1970-01-01
              • 2011-10-21
              • 2023-04-10
              相关资源
              最近更新 更多