水平線を引くアニメーションの実装をいくつかやってみます。
左から右へ線を引く
まずはベタ塗りの線を引いてみます。
HTML
<div id="horizon1"></div>
CSS
#horizon1 { position: absolute; top: 100px; left: 0; width: 0; height: 5px; background: #E74C3C; }
JavaScript
$(function() { winW = $(window).width(); spped = 3000; $('#horizon1').animate({ width: winW }, spped); });
線の塗りは背景色で、widthを0から画面幅に広げてアニメーションしています。
左から右へ線を引くデモページ1
ベタ塗りではなく画像で線を引いてみます。
HTML
<div id="horizon2"></div>
CSS
#horizon2 { position: absolute; top: 100px; left: 0; width: 0; height: 5px; background: url(horizon.gif) left center repeat-x; }
JavaScript
$(function() { winW = $(window).width(); spped = 3000; $('#horizon2').animate({ width: winW }, spped); });
やっていること自体は1番目と同じで、背景をベタ塗りから背景画像を表示するように変更しています。
左から右へ線を引くデモページ2
線の引き始めをグラデーションで徐々に表示するように引いてみます。
HTML
<div id="horizon3"> <div id="horizon3-inner"></div> </div>
CSS
#horizon3 { position: absolute; top: 100px; left: 0; width: 0; height: 5px; background: url(horizon.gif) left center repeat-x; } #horizon3-inner { width: 100%; height: 5px; background: url(grad.png) right center no-repeat; }
JavaScript
$(function() { winW = $(window).width(); spped = 3000; $('#horizon3').animate({ width: winW }, spped); });
線を引く要素の子要素に、透過→白のグラデーション画像を背景に指定した要素を配置し、線を引くアニメーションの上にグラデーション画像が重なるようにしています。
左から右へ線を引くデモページ3
中央から左右へ線を引く
中央から左右へ線を引いてみます。
HTML
<div id="horizon4"></div>
CSS
#horizon4 { position: absolute; top: 100px; left: 0; width: 0; height: 5px; background: #E74C3C; }
JavaScript
$(function() { winW = $(window).width(); spped = 3000; $('#horizon4').css({ left: winW / 2 }).animate({ left: 0, width: winW }, spped); });
leftを画面幅の半分(画面中央)にして、そこから0になるようにアニメーションしています。
それと同時に、widthを0から画面幅に広げてアニメーションするようにしています。
中央から左右へ線を引くデモページ
コメントが承認されるまで時間がかかります。