动态高度宽度创建div克隆 - jquery / javascript

时间:2014-10-27 07:46:14

标签: javascript jquery

我正在使用jquery创建一个div:

jQuery(window).on('load resize', function()
{
    // jQuery('.overlay').remove(); if i use remove then its not appending the div anymore.
    var html_width = jQuery('html').width();
    var html_height = jQuery('html').height();
    jQuery('html').append('<div class="overlay"></div>').fadeIn('slow');
    jQuery('.overlay').css({'width': html_width, 'height': html_height});
});

现在问题是当我调整浏览器大小时,会创建更多克隆。我想删除所有以前的div并附加当前的div。

任何帮助都将不胜感激。

图片:

picture

3 个答案:

答案 0 :(得分:2)

为什么要继续添加它只需添加一次,如果你想更新高度和宽度就这样做:

<script>
    jQuery('body').append('<div id="overlay" class="overlay"></div>');
    jQuery(window).on('load resize', function()
    {
        var html_width = jQuery('html').width();
        var html_height = jQuery('html').height();
        jQuery('body #overlay').css({ 'width': html_width, 'height': html_height });
        jQuery("#overlay").css("display", "block"); 
    });
</script>

答案 1 :(得分:1)

尝试这个怎么样?

jQuery(window).on('load resize', function()
{
    jQuery('.overlay').remove(); 
    var html_width = jQuery('html').width();
    var html_height = jQuery('html').height();
    jQuery('body').append('<div class="overlay"></div>');
    jQuery('body div.overlay').css({'width': html_width, 'height': html_height});
});

答案 2 :(得分:0)

<html>
<head>
    <style>
        .overlay {
            background-color: rgba(0,0,0,0.5);
            width: 100%;
            height: 100%
        }
    </style>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>

<body>

    <div class="overlay">

    </div>

    <script type="text/javascript">

        $(window).on('load resize', function(){

            var w = $(this).width();
            var h = $(this).height();

            $('.overlay').remove();

            $('body').append('<div class=overlay></div>');

        })

     </script>
</body>
</html>

这不是一个好习惯..

为什么不通过css属性

来做