1

是否可以在 html 中动画调整框架的大小?

我有一个网页,其中有两个水平堆叠的框架(比如 500 像素,剩余)。单击“最小化”图像后,左侧的框架会缩小到 100 像素左右。是否可以通过 jquery/javascript/css 为这种收缩设置动画?

4

3 回答 3

3

如果您正在寻求为内部框架设置动画,那么我会选择 Molle 博士的回答。但是,如果您要为框架集设置动画,则必须手动进行。下面的例子说明了。要检查它,您最好使用本地 Web 服务器来避免跨域限制的问题(至少在 Chrome 中,尚未在其他任何地方测试过......)。

框架1.html

<html>
    <body>
        frame 1
        <br />
        <a href='#' class='minimize'>Minimize</a>

        <script type="text/javascript" 
            src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type='text/javascript'>
            $(function () { 
                $('.minimize').click(function (evt) {
                    evt.preventDefault();
                    window.parent.minimize();
                    return false;
                });
            });
        </script>
    </body>
</html>

框架2.html

<html><body>frame 2</body></html>

框架集.html

<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type='text/javascript'>
            $(function () { 
                var minimizeInterval = null;
                var current = 500;
                var pace = 15;
                var stop = 100;

                window.minimize = function () {
                    minimizeInterval = setInterval(function () {
                    console.log('minimizing...');
                        $('frameset').attr('cols', current + ',*');
                        current -= pace;
                        if (current < stop) 
                            clearInterval(minimizeInterval);
                    }, 10);
                };
            });
        </script>
    </head>

    <frameset cols="500,*">
        <frame id='frame1' src="frame1.html"></frame>
        <frame id='frame2' src="frame2.html"></frame>
    </frameset>
</html>
于 2012-07-08T08:28:51.577 回答
2

使用 jQuery 的动画

$('#frameselector').animate({width:100});
于 2012-07-08T07:58:53.360 回答
1

是的,您可以为大多数 CSS 属性设置动画。

这是一个示例:当您单击左侧框架时,右侧框架会变为动画并缩小尺寸。

这是使用:

$('#a').click(function(){
    $('#b').animate({
        height: '50px'
    }, 5000);
});​
于 2012-07-08T08:00:32.787 回答