CSS3 タイムラインアニメーション

CSS3 タイムラインアニメーション

成果を達成する

html

<h2>CSS3 タイムライン</h2>
<p>水平バージョンを表示するには、$vertical 変数を false に設定してください。</p>
<ul id='タイムライン'>
  <li class='仕事'>
    <input class='radio' id='work5' name='works' type='radio' チェック済み>
    <div class="相対">
      <label for='work5'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 12 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work4' name='works' type='radio'>
    <div class="相対">
      <label for='work4'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 11 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男ですが、彼が全く忍耐のない男であることも知っています! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です!
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work3' name='works' type='radio'>
    <div class="相対">
      <label for='work3'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 10 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男ですが、彼が全く忍耐のない男であることも知っています! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です!
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work2' name='works' type='radio'>
    <div class="相対">
      <label for='work2'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 9 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work1' name='works' type='radio'>
    <div class="相対">
      <label for='work1'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 8 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
</ul>

CS

/* -------------------------------------
 * 横向きの場合は、
 * $vertical変数をfalseにする
 * ------------------------------------- */
/* -------------------------------------
 * 一般的なスタイル
 * ------------------------------------- */
url をインポートします(https://fonts.googleapis.com/css?family=Noto+Sans);
体 {
  最大幅: 1200px;
  マージン: 0 自動;
  パディング: 0 5%;
  フォントサイズ: 100%;
  フォントファミリ: "Noto Sans"、サンセリフ;
  色: #eee9dc;
  背景: #48b379;
}

h2 {
  マージン: 3em 0 0 0;
  フォントサイズ: 1.5em;
  文字間隔: 2px;
  テキスト変換:大文字;
}

/* -------------------------------------
 * タイムライン
 * ------------------------------------- */
#タイムライン {
  リストスタイル: なし;
  マージン: 50px 0 30px 120px;
  左パディング: 30px;
  左境界線: 8px 実線 #eee9dc;
}
#タイムライン li {
  マージン: 40px 0;
  位置: 相対的;
}
#タイムライン p {
  マージン: 0 0 15px;
}

。日付 {
  上マージン: -10px;
  上位: 50%;
  左: -158px;
  フォントサイズ: 0.95em;
  行の高さ: 20px;
  位置: 絶対;
}

。丸 {
  上マージン: -10px;
  上位: 50%;
  左: -44px;
  幅: 10px;
  高さ: 10px;
  背景: #48b379;
  境界線: 5px 実線 #eee9dc;
  境界線の半径: 50%;
  表示: ブロック;
  位置: 絶対;
}

。コンテンツ {
  最大高さ: 20px;
  パディング: 50px 20px 0;
  境界線の色: 透明;
  境界線の幅: 2px;
  境界線のスタイル: solid;
  境界線の半径: 0.5em;
  位置: 相対的;
}
.content:before、.content:after {
  コンテンツ: "";
  幅: 0;
  高さ: 0;
  境界線: 透明な実線;
  位置: 絶対;
  ポインタイベント: なし;
  右: 100%;
}
.content:before {
  右境界線の色: 継承;
  境界線の幅: 20px;
  上位: 50%;
  上マージン: -20px;
}
.content:after {
  右境界線の色: #48b379;
  境界線の幅: 17px;
  上位: 50%;
  上マージン: -17px;
}
.content p {
  最大高さ: 0;
  色: 透明;
  テキスト配置: 両端揃え;
  単語区切り: 単語区切り;
  ハイフン: 自動;
  オーバーフロー: 非表示;
}

ラベル {
  フォントサイズ: 1.3em;
  位置: 絶対;
  zインデックス: 100;
  カーソル: ポインタ;
  上: 20px;
  遷移: 0.2 秒の線形変換。
}

.ラジオ{
  表示: なし;
}

.radio:checked + .relative ラベル {
  カーソル: 自動;
  変換: translateX(42px);
}
.radio:checked + .relative .circle {
  背景: #f98262;
}
.radio:checked ~ .content {
  最大高さ: 180px;
  境界線の色: #eee9dc;
  右マージン: 20px;
  変換: translateX(20px);
  遷移: max-height 0.4 秒線形、border-color 0.5 秒線形、transform 0.2 秒線形。
}
.radio:checked ~ .content p {
  最大高さ: 200px;
  色: #eee9dc;
  遷移: カラー 0.3 秒、線形 0.3 秒。
}

/* -------------------------------------
 * 携帯電話(縦型のみ)
 * ------------------------------------- */
@media スクリーンと (最大幅: 767px) {
  #タイムライン {
    左マージン: 0;
    左パディング: 0;
    左境界線: なし;
  }
  #タイムライン li {
    マージン: 50px 0;
  }

  ラベル {
    幅: 85%;
    フォントサイズ: 1.1em;
    空白: ラップなし;
    テキストオーバーフロー: 省略記号;
    オーバーフロー: 非表示;
    表示: ブロック;
    変換: translateX(18px);
  }

  。コンテンツ {
    パディング上部: 45px;
    境界線の色: #eee9dc;
  }
  .content:before、.content:after {
    境界線: 透明な実線;
    下部: 100%;
  }
  .content:before {
    境界線の下部の色: 継承;
    境界線の幅: 17px;
    上: -16px;
    左: 50px;
    左マージン: -17px;
  }
  .content:after {
    境界線下部の色: #48b379;
    境界線の幅: 20px;
    上: -20px;
    左: 50px;
    左マージン: -20px;
  }
  .content p {
    フォントサイズ: 0.9em;
    行の高さ: 1.4;
  }

  .circle、.date {
    表示: なし;
  }
}

以上がCSS3でタイムラインアニメーションを実装する方法の詳細です。CSS3タイムラインの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

<<:  Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

>>:  Vue はカスタム「モーダル ポップアップ ウィンドウ」コンポーネントのサンプル コードを実装します

推薦する

MySQLフィルタリングレプリケーションのアイデアの詳細な説明

目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...

Jenkins初心者のためのDockerデプロイメントチュートリアルの詳細な説明

この記事では、docker 経由で Jenkins+Maven+SVN+Tomcat をデプロイし、...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

問題におけるJS演算子の調査

問題は、誰もが「メモリ リーク」について知っていることです。一般的なシナリオはいくつかあります。クロ...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

vue data が関数である理由をご存知ですか?

公式サイトの説明: コンポーネントを定義する場合、コンポーネントは複数のインスタンスを作成するために...

sed コマンドを使用して文字列を置換する Linux チュートリアル

文字列を置き換えるには、次の形式を使用する必要があります。 $ sed s/置換対象文字列/置換文字...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

Windows 10 に Linux サブシステムをインストールする 2 つの方法 (画像とテキスト付き)

Windows 10 は Linux サブシステムをサポートするようになり、面倒なデュアル システ...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

電子署名を実装するWeChatミニプログラム

この記事では、WeChatミニプログラムで電子署名を実装するための具体的なコードを参考までに紹介しま...

css3 flexレイアウト justify-content:space-between 最後の行は左揃えになります

justify-content:space-betweenレイアウトを使用する場合、要素の最後の行に...

JavaScript は自由に移動するウィンドウのマウス制御を実装します

この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考...