過去の記事で、優れたタイムライン プラグインを多数紹介しました。これらのプラグインを使用すると、ダイナミックで美しいタイムライン表示を作成できます。
タイムライン Timelinr TimergliderJS Chronoline 上記の jQuery プラグインまたはクラス ライブラリを使用して、美しいタイムライン ティムライン エフェクトを作成します。
gbtags.com コミュニティ開発では、シンプルで実用的なユーザー タイムライン アプリケーションを作成する必要があるため、ここでは開発に Timelinr を使用することを選択し、アニメーション プロセスをより豊かで興味深いものにするために、Animate も使用します。 css を使用して、さまざまな CSS アニメーション効果を作成します。
使用する必要があるサードパーティのプラグインと CSS ライブラリは次のとおりです:
Timelinr Animate.css fixie.js cufon.js Timelinr はタイムライン jQuery プラグイン実装です。ダイナミックなタイムライン効果を生成し、垂直および水平表示モードを提供し、自動再生をサポートします。
Animate.css は、Dan Eden によって開発された素晴らしい CSS アニメーション ライブラリであり、純粋な CSS を使用してさまざまなアニメーション効果を実現するのに役立ちます。以前に Animate.css を紹介しました。知らない場合は、この記事を読んでください: 素晴らしいクロスブラウザーの純粋な CSS アニメーションの実装 - Animate.css
fixie.js は前の記事で紹介されました。これはミニクラス ライブラリです。大量のコンテンツをコピーすることにうんざりしている場合は、これを使用してコンテンツを自動的に生成できます。ここでは、これを使用して画像とテキストのコンテンツを生成します。
ここでは、よりパーソナライズされた年を生成するために cufon を使用します。cufon.js は、指定されたテキストをキャンバス画像に変換します。
Javascript コード
jQuery timelinr はプラグインであるため、より適切にカプセル化するために、ここでプラグインのコンテンツを直接変更します。デフォルトのアニメーション効果は比較的単純で、それぞれの画像を拡大して表示するだけです。ここでは、animate.css で定義されたアニメーション クラスを追加することで、より多くの特殊効果を追加できることを期待しています。
animate の使用は非常に簡単です。次のように、jQuery の addClass メソッドを使用して、対応するクラスを呼び出して CSS アニメーション効果を実現するだけです:
- $('somediv').addClass('animated shade')。 late (1000).queue(function(next){
- $(this).removeClass('animated shade');
- next();
- });
上記のコードでは、遅延メソッドを使用してアニメーションが完了できるように 1 秒遅延させ、次に addClass を再度呼び出してアニメーション効果を生成できるように、追加したクラスを削除します
プラグインで関連するコードを見つけます。次のように:
- $(settings .issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false,duration:settings.issuesSpeed});
- $(settings .issuesDiv+' li.'+settings.issuesSelectedClass).removeClass (settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass);
コメントした後、実行する必要があるアニメーションに変更します:
$(settings.issuesDiv+' li').addClass('animated ' + cssAnimation).delay(1000).queue(function(next){-
$(this).removeClass('animated ' + cssAnimation); -
next();-
-
また、主にテキストから画像へのテキストを生成するために cufon を使用します。次のように、クラスが変更されたときに cufon を再度呼び出す必要があります:
$(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children ().addClass(settings.datesSelectedClass).delay(500).queue(
function(next){
- next();
- Cufon.refresh();
- });
-
-
ここで、cssAnimation オプションを追加します。デフォルト値は「lightSpeedIn」です。これにより、アニメーション タイプを自分で定義することが簡単になります。
- settings = jQuery.extend({
- Orientation: 'horizontal', // 値: 水平 | 垂直、デフォルトは水平です
- containerDiv: '#timeline', // 値: 任意の HTML タグまたは #id,デフォルトは #timeline
- daysDiv: '#dates', // 値: 任意の HTML タグまたは #id、デフォルトは #dates
- daysSelectedClass: 'selected', // 値: 任意のクラス、デフォルトは selected
- dateSpeed: 'normal', // 値: 100 ~ 1000 の整数 (推奨) または 'slow'、'normal' または 'fast'; デフォルトは通常です
- issuesDiv: '#issues', // 値: 任意の HTML タグまたは # id、デフォルトは #issues
- issuesSelectedClass: 'selected', // 値: 任意のクラス、デフォルトは selected
- issuesSpeed: 'fast', // 値: 100 ~ 1000 の整数 (推奨) または 'slow', ' Normal' または 'fast'; デフォルトは fast です
- issuesTransparency: 0.2, // 値: 0 から 1 までの整数 (推奨)、デフォルトは 0.2 です
- issuesTransparencySpeed: 500, // 値: 100 から 1000 までの整数 (推奨) 、デフォルトは 500 (通常) です
- prevButton: '#prev', // 値: 任意の HTML タグまたは #id、デフォルトは #prev
- nextButton: '#next', // 値: 任意の HTML タグまたは #id 、デフォルトは #next
- arrowKeys: 'false', // value: true | false、デフォルトは false
- startAt: 1, // 値: 整数、デフォルトは 1 (最初)
- autoPlay: 'false', // 値: true | false、デフォルトは false
- autoPlayDirection: 'forward', // 値: forward |逆方向、デフォルトは順方向
- autoPlayPause: 2000, // 値: 整数 (1000 = 1 セグ)、デフォルトは 2000 (2 セグ)
- cssAnimation: 'lightSpeedIn'
-
- }, options);
javascript调用如下:
- $(function(){
- Cufon.replace('#timeline a, #timeline h1').CSS.ready(function() {
-
- $().timelinr({autoPlay:'true', autoPlayPause:'3000', cssAnimation:'tada'});
-
- });
- });
以上代ご覧のとおり、私は cufon を使用して美化文字を生成するために必要なすべての要素を置き換え、その後タイムライナー ツールを使用して、ここではアニメーション タイプを tada に設定しています。他の効果を作成する必要がある場合は、独自にタイプを変更します。
HTML 内に年と時刻を含む目的の内容を設定します。文字と図片、里代コード很简单、1 つのフレームのみが含まれます、私は fixie.js を使用して特定の内容を自動生成します:
-
CSS コード
異なる方向に表示されるタイムラインは異なるスタイル ファイルを使用します。 ここでは、水平方向のタイムライン スタイルのみをリストします。
- * {
- margin: 0;
- padding: 0;
- }
-
- body {
- background: #222;
- font-family: Georgia、serif;
- カラー: #707070 ;
- font-size: 14px;
- }
-
- a {
- color: #404040;
- text-decoration: none;
- -webkit-transition: 0.5s;
- -moz-遷移: 0.5s;
- -o-transition: 0.5s;
- -ms-transition: 0.5s;
- transition: 0.5s;
- }
- a:hover,
- a.selected {
- color: # 808080;
- }
-
- h1,h2,h4,h5,h6 {
- text-align: center;
- color: #ccc;
- text-shadow: #000 1px 1px 2px;
- margin-下: 5px;
- }
- h1 {
- font-size: 18px;
- }
- h2 {
- font-size: 14px;
- }
- .sociales {
- text -align: 中央;
- margin-bottom: 20px;
- }
-
- #timeline {
- width: 788px;
- height: 350px;
- overflow: hidden;
- margin: 100px auto;
- 位置: 相対;
- 背景: url('../images/dot.png') left 45pxrepeat-x;
- }
- #dates {
- width: 120px;
- height: 60px;
- overflow: hidden;
- }
- #dates li {
- list-style: none;
- float: left;
- width: 150px;
- height: 50px;
- font-size: 24px;
- text-align: center;
- 背景: url('../images/bdot.png') 中央下 no-repeat;
- }
- #dates a {
- line-height: 38px;
- padding-bottom: 10px;
- color : #CCC;
- }
-
- #dates .selected {
- font-size: 30px;
- color: #5DB0E6;
- padding-bottom: 12px;
- background: url('../images /bdot1.png') 中央下 no-repeat;
- }
-
- #issues {
- width: 788px;
- height: 350px;
- overflow: hidden;
- }
- #issues li {
- 幅: 788px;
- 高さ: 350px;
- list-style: none;
- float: left;
- }
- #issues li.selected img {
- -webkit-transform:scale(1.1,1.1) ;
- -moz-transform: スケール(1.1,1.1);
- -o-transform: スケール(1.1,1.1);
- -ms-transform: スケール(1.1,1.1);
- 変換: スケール(1.1) ,1.1);
- }
- #issues li img {
- float: left;
- margin: 10px 30px 10px 50px;
- バックグラウンド: 透明;
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient (startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE 8 */
- フィルター: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);/* IE 6 & 7 */
- ズーム: 1;
- -webkit-transition:すべて 2 のイーズインアウト;
- -moz-transition: すべて 2 のイーズインアウト;
- -o-transition: すべて 2 のイーズインアウト;
- -ms-transition: すべて 2 のイーズイン-out;
- トランジション: すべて 2 のイーズインアウト;
- -webkit-transform:scale(0.7,0.7);
- -moz-transform:scale(0.7,0.7);
- -o-transform:スケール(0.7,0.7);
- -ms-transform: スケール(0.7,0.7);
- 変換: スケール(0.7,0.7);
- }
- #issues li h1 {
- color: #5DB0E6;
- font-size: 48px;
- margin: 20px 0;
- text-shadow: #000 1px 1px 2px;
- }
- #issues lip {
- font-size: 14px;
- margin-right: 70px;
- font-weight:normal;
- line-height: 22px;
- text-shadow: #000 1px 1px 2px;
- }
-
- #grad_left,
- #grad_right {
幅: 100px ;-
高さ: 350px;-
位置: 絶対;-
トップ: 0;-
}-
#grad_left {-
左: 0;-
背景: url('../images/grad_left.png')繰り返し-y;-
}-
#grad_right {-
right: 0;-
背景: url('../images/grad_right.png') 繰り返し-y;-
} -
- #next,
- #prev {
- 位置: 絶対;
- トップ: 0;
- フォントサイズ: 70px;
- トップ: 170px;
- 幅: 22px;
- 高さ: 38px;
- 背景位置: 0 0;
- 背景繰り返し: no-repeat;
- テキストインデント: -9999px;
- オーバーフロー: 非表示;
- }
- #next:hover,
- #prev:hover {
- 背景位置: 0 -76px;
- }
- #next {
- 右: 0;
- 背景画像: url('../images/next.png');
- }
- #prev {
- left: 0;
- background-image: url('../images/prev.png');
- }
- #next.disabled,
- #prev.disabled {
- 不透明度: 0.2;
- }
全代码书写完毕,大家可以看在在線演示来浏览效果,如果你有更好建议,请给我们留言,谢谢!