Js显示和隐藏功能

时间:2012-04-27 09:11:34

标签: javascript jquery

我知道有很多脚本可以显示和隐藏内容,但在我的场景中,它们都不适用于我。 在此测试页http://bloghutsbeta.blogspot.com/2012/04/testing-game-content-issue.html上 我在iframe中有flash游戏,如果你点击PLAY按钮或者你没有点击仍然在Chrome和IE中开始加载flash内容(不在firefox中)。

所以为了处理这种情况我想到了使用show和hide内容方法并使用了一些脚本,但是没有一个帮助,因为即使在我使用它们时,flash内容仍然用于在IE中的后端加载铬。 我要求的是一个脚本,在执行'onclick'功能之前不会让flash内容加载。 我知道一个脚本执行此操作'LazyLoad'但是它适用于图像,我认为它也不适用于Flash内容。

注意:1 - 提供的链接上有音乐 2-很抱歉提供blogspot链接,但JsFiddle不适合居住在阿富汗的人用5KBps。

相关加价: 灯箱或模态窗口的按钮

<a class="poplight" href="#?w=100%" rel="popup_name"><img alt="play game" class="happybutton" onmouseout="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100" src="http://farm5.static.flickr.com/4084/4998558471_27e3985c16_m.jpg" style="opacity: 0.8;" /></a>

在点击上面的按钮之前,内容设置为无显示(这实际上不适用于IE浏览器中的Chrome和Chrome)

<div class="popup_block" id="popup_name">
<iframe width="100%" height="98%" src="http://files.cryoffalcon.com/bhgames/dressup/Celebrities/Wizard%20Fashion.html" frameborder="0" scrolling="no" allowTransparency="false"
></iframe>
</div>

CSS:

#fade { 
    display: none; 
    background: #000;
    position: fixed; left: 0; top: 0;
    width: 100%; height: 100%;
    opacity: .80;
    z-index: 9999999;
}

.popup_block{
   width: 98.95%; height: 98.2%;
    display: none;
    padding: 0px;
    line-height:1em;
    font-size: 1em;
    position: fixed;
    top: 0px; left: 0px;
    z-index: 999999999;
    -webkit-box-shadow: 0px 0px 20px #000;
    -moz-box-shadow: 0px 0px 20px #000;
    box-shadow: 0px 0px 20px #000;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
}
.close {
    height:20px;
    float: right;
    margin: 0 2px 0 0;   
}

JS(实际上是Jquery)

&lt;script type=&quot;text/javascript&quot;&gt;
    $(document).ready(function(){

        //When you click on a link with class of poplight and the href starts with a # 
        $(&#39;a.poplight[href^=#]&#39;).click(function() {
            var popID = $(this).attr(&#39;rel&#39;); //Get Popup Name
            var popURL = $(this).attr(&#39;href&#39;); //Get Popup href to define size

            //Pull Query &amp; Variables from href URL
            var query= popURL.split(&#39;?&#39;);
            var dim= query[1].split(&#39;&amp;&#39;);
            var popWidth = dim[0].split(&#39;=&#39;)[1]; //Gets the first query string value

            //Fade in the Popup and add close button
            $(&#39;#&#39; + popID).fadeIn().css({ &#39;width&#39;: Number( popWidth ) }).prepend(&#39;&lt;a href=&quot;#&quot; title=&quot;Close It&quot; class=&quot;close&quot;&gt;&lt;img src=&quot;http://files.cryoffalcon.com/bloghuts/images/close%20button.png&quot; alt=&quot;Close&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;/a&gt;&#39;);

            //Define margin for center alignment (vertical + horizontal) - we add 80 to the height/width to accomodate for the padding + border width defined in the css
            var popMargTop = ($(&#39;#&#39; + popID).height() + 0) / 0;
            var popMargLeft = ($(&#39;#&#39; + popID).width() + 0) / 0;

            //Apply Margin to Popup
            $(&#39;#&#39; + popID).css({ 
                &#39;margin-top&#39; : -popMargTop,
                &#39;margin-left&#39; : -popMargLeft
            });

            //Fade in Background
            $(&#39;body&#39;).append(&#39;&lt;div id=&quot;fade&quot;&gt;&lt;/div&gt;&#39;); //Add the fade layer to bottom of the body tag.
            $(&#39;#fade&#39;).css({&#39;filter&#39; : &#39;alpha(opacity=80)&#39;}).fadeIn(); //Fade in the fade layer 

            return false;
        });


        //Close Popups and Fade Layer
        $(&#39;a.close, #fade&#39;).live(&#39;click&#39;, function() { //When clicking on the close or fade layer...
            $(&#39;#fade , .popup_block&#39;).fadeOut(function() {
                $(&#39;#fade, a.close&#39;).remove();  
        }); //fade them both out

            return false;
        });


    });

    &lt;/script&gt;

1 个答案:

答案 0 :(得分:2)

你应该尝试这样的东西,在点击按钮后立即加载你的框架:

$(document).ready(function(){
    $('a.poplight[href^=#]').click(function() {
        $('<iframe/>')
            .attr('frameborder', 0)
            .attr('allowTransparency', false)
            .attr('scrolling', 'no')
            .attr('width', '100%')
            .attr('height', '98%')
            .attr('src', 'http://files.cryoffalcon.com/bhgames/dressup/Celebrities/Wizard%20Fashion.html')
            .appendTo('#popup_name');
    });
});

更新:要在弹出窗口关闭时删除框架,您可以使用此功能:

$('#popup_name .close').live('click', function() {
    $('#popup_name iframe').remove();
});