HTMLでフレームのサイズ変更をアニメーション化することは可能ですか?
水平方向に積み重ねられた 2 つのフレーム (残り 500px など) がある Web ページがあります。「最小化」画像をクリックすると、左側のフレームが約 100px に縮小されます。jquery/javascript/css を介してこの縮小をアニメーション化することは可能ですか?
HTMLでフレームのサイズ変更をアニメーション化することは可能ですか?
水平方向に積み重ねられた 2 つのフレーム (残り 500px など) がある Web ページがあります。「最小化」画像をクリックすると、左側のフレームが約 100px に縮小されます。jquery/javascript/css を介してこの縮小をアニメーション化することは可能ですか?
あなたが内側のフレームをアニメートしようとしているなら、私はモール博士の答えに行きます。ただし、フレームセットをアニメーション化しようとしている場合は、手動でアニメーション化する必要があります。以下の例はを示しています。それを調べるには、ローカルWebサーバーを使用して、ドメイン間の制限に関する問題を回避することをお勧めします(少なくとも、Chromeでは、他の場所でテストしていません...)。
<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>
<html><body>frame 2</body></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>
jQuery のanimateを使用します。
$('#frameselector').animate({width:100});
はい、ほとんどの CSS プロパティをアニメーション化できます。
サンプルを次に示します。左のフレームをクリックすると、右のフレームがアニメーション化され、サイズが縮小されます。
これは次を使用して行われます。
$('#a').click(function(){
$('#b').animate({
height: '50px'
}, 5000);
});