イセンチュートリアルサイト
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
TOP CSS スクロールダウン スクロールをするとタイムラインの縦線が伸びる

CSS

スクロールをするとタイムラインの縦線が伸びる

  • カテゴリー:スクロールダウン


     

    HTMLの書き方

    head終了タグ直前に自作のCSSを読み込みます。

    <link rel="stylesheet" type="text/css" href="css/9-1-6.css">

    body内にタイムラインのHTMLを記載します。

    <ul class="timeline">
    	<li><!--線が伸びる基準となるHTML。liを基準として、spanに指定された線を伸ばします。-->
    		<dl>
    			<dt>2000</dt>
    			<dd>内容</dd>
    		</dl>
    		<span class="border-line"></span>
    	</li>
    	<li>
    		<dl>
    			<dt>2002</dt>
    			<dd>内容</dd>
    		</dl>
    		<span class="border-line"></span>
    	</li>
    </ul>

    body 終了タグ直前に jQuery、動きを制御する自作のJS の2 つを読み込みます。

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <!--自作のJS-->
    <script src="js/9-1-6.js"></script>

     

    CSSの書き方

    /*タイムライン全体の設定*/
    .timeline{
    	max-width: 400px;
    	width:100%;
    	margin:50px auto;
    	padding:0 30px;
    }
    
    .timeline li{
    	/*線の起点とするためrelativeを設定*/
    	position: relative;
    	list-style: none;
    	padding:0 0 20px 0;
    }
    
    .timeline dl{
    	margin:0 0 20px 3em;
    }
    
    /*絶対配置で線を設定*/
    .border-line {
    	/*線の位置*/
    	position: absolute;
    	left:0.2em;
    	top:0;
    	width:2px;/*線の太さ*/
    	height:0;/*はじめは高さを0に*/
    	background: #ccc;
    }
    
    /*タイムラインの見出し横の丸の位置と形状*/
    .timeline li::after{
    	content:'';
    	position: absolute;
    	top:0;
    	left:0;
    	width:10px;
    	height: 10px;
    	background:#666;
    	border-radius: 50%;
    }
    

     

    JSの書き方

    //線が伸びるための設定を関数でまとめる
    function ScrollTimelineAnime(){
    	$('.timeline li').each(function(){// それぞれのli要素の
    		var elemPos = $(this).offset().top;// 上からの高さ取得
    		var scroll = $(window).scrollTop();// スクロール値取得
    		var windowHeight = $(window).height();// windowの高さ取得
    		var startPoint = 100; //線をスタートさせる位置を指定※レイアウトによって調整してください
    		if (scroll >= elemPos - windowHeight-startPoint){				
    			var H = $(this).outerHeight(true)//liの余白と高さを含めた数値を取得
    
    			//スクロール値から要素までの高さを引いた値を、liの高さの半分のパーセントで出す
    			var percent = (scroll+startPoint - elemPos) / (H/2) *100;//liの余白と高さの半分で線を100%に伸ばす
    
    			// 100% を超えたらずっと100%を入れ続ける
    			if(percent  > 100){
    				percent  = 100;
    			}
    
    			// ボーダーの長さをセット
    			$(this).children('.border-line').css({
    				height: percent + "%", //CSSでパーセント指定
    			});
    		} 
    	});
    }
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).on('scroll', function(){
    	ScrollTimelineAnime();// 線が伸びる関数を呼ぶ
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function(){
    	ScrollTimelineAnime();// 線が伸びる関数を呼ぶ
    });
    投稿日:2022年08月01日
次のページ
前のページ

アーカイブ

  • CSS (117)
    • スクロールダウン (8)
    • テキストナビゲーション (11)
    • ボタン (52)
    • メニュー (1)
    • 動画 (2)
    • 検索 (3)
    • 画像リンクの動き (23)
    • 背景の動き (17)
  • Illustrator (8)
  • JS (93)
    • アコーディオンパネル (2)
    • アニメーション (1)
    • エリアの動き (7)
    • ギャラリー (6)
    • グラフ (7)
    • スライド (9)
    • テキストの動き (17)
    • ニュースティッカー (1)
    • ページトップリンク (9)
    • ページ内リンク (2)
    • メニュー (28)
    • モーダルウィンドウ (1)
    • ローディング (3)
  • Photoshop (1)
  • PHP (20)
  • WordPress (4)
    • プラグイン (2)
    • リンク (1)
  • お客様観覧用 (11)
    • WEB制作プラン (1)
    • アニメーション (8)
    • グローバルナビゲーション (1)
    • スライド (1)
  • サーバー (6)
    • CPI (1)
  • 未分類 (6)
  • 法律 (2)
    • 医療法 (1)
    • 柔道整復師法 (1)
TOP
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
© 2022 isen-print.