Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要一个iframe的内容像一个动画一样展开,填满整个屏幕并缩小到原来的大小_Javascript_Jquery_Css - Fatal编程技术网

Javascript 我需要一个iframe的内容像一个动画一样展开,填满整个屏幕并缩小到原来的大小

Javascript 我需要一个iframe的内容像一个动画一样展开,填满整个屏幕并缩小到原来的大小,javascript,jquery,css,Javascript,Jquery,Css,我需要一个iframe的内容,它的高度为100px,只显示iframe的一部分,以便在单击“阅读更多”按钮时像动画一样展开,并填充整个屏幕向各个方向展开,在单击位于其顶部的“关闭”按钮时,它需要设置动画并缩小到原始大小 我找到一把小提琴,上面画着类似的东西 但我的问题是,我的div不能绝对定位,因为我的div下面有内容,如果我绝对定位这个div,就会受到影响。 绝对定位其余的内容在我看来也不是一个好的解决方案 代码 可能最简单的方法是在Jquery中使用.animate{}方法 看看这把小提琴

我需要一个iframe的内容,它的高度为100px,只显示iframe的一部分,以便在单击“阅读更多”按钮时像动画一样展开,并填充整个屏幕向各个方向展开,在单击位于其顶部的“关闭”按钮时,它需要设置动画并缩小到原始大小

我找到一把小提琴,上面画着类似的东西

但我的问题是,我的div不能绝对定位,因为我的div下面有内容,如果我绝对定位这个div,就会受到影响。 绝对定位其余的内容在我看来也不是一个好的解决方案

代码


可能最简单的方法是在Jquery中使用.animate{}方法

看看这把小提琴:

.animate{}允许您更改css属性,然后在元素上平滑地设置更改的动画。您可以传递几个不同的参数。在小提琴中,你会看到我超过了1000——这是动画完成的持续时间,单位为毫秒


您可以在此处阅读有关参数和方法的更多信息:

这确实很有帮助。但是iframe需要覆盖页面中的其余内容并覆盖它们,这似乎只有在iframe完全定位的情况下才有可能。但是页面中有这么多动态内容,我不想绝对定位iframe

这就像我想要的一样,只是不能绝对定位

JS:

<html>
<head>
    <script type="text/javascript">
        var isFullscreen = false;

        function fullscreen(){

        //var  d = document.getElementById('controls').style;
        var d = {};
        var speed = 900;
        if(!isFullscreen){ // MAXIMIZATION

        /*comment to have smooth transition from centre but loose covering the header*/
        //document.getElementById('controls').style.position= "absolute";

        d.width = "100%";
        d.height="100%";                    
        //d.left="0%";
        d.top="0px";
        //d.margin="0 0 0 0";
        $("#header").animate({ 
        height: 0
        }, speed);
        $("#controls2").animate(d,speed);

        isFullscreen = true;
        }else{ // MINIMIZATION

        d.width="300px";
        d.height="100px";
        d.margin="0 auto";
        d.position="relative";
        //d.top="+=30px";

        /* comment to have smooth minimze transition but not be placed below header */
        // document.getElementById('controls').style.position= "relative";

        $("#header").animate({ 
        height: 30
        }, speed);
        $("#controls2").animate(d,speed);
        isFullscreen = false;
        }

        }

    </script> 
    <style> 
        * { margin: 0 }

        #controls {
        width:100%;
        height:100%;
        margin: 0 auto;
        display:block;
        position:absolute;
        left: 50%;
        z-index:5;
        } 
        #controls2 {
        overflow:visible;
        width: 300px;
        height: 100px;
        position: relative; 
        left: -50%; 
        background-color: green;
        z-index:10;
        } 

    </style> 

</head>
<body>
    <h1 id="header" align=center> Header (To be covered on Fullscreen) </h1>
    <div id='controls' style="" align="center">

        <div id='controls2'>
            <input type='button' value='fullscreen' onclick='fullscreen();' /><br>
            I am some centered shrink-to-fit content! <br />
            tum te tum
        </div>
    </div>
</body>
$("#clickhere").on("click", function () {
$("#myframe").animate({
    width: "200px",
    height: "200px"
}, 1000);
});
$(this).stop().animate({
    left: parseInt(this.style.left)-100,
    top: parseInt(this.style.top)-100,
    width: parseInt(this.style.width)+200,
     height: parseInt(this.style.height)+200
}, 300);