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

JS

カテゴリーページ

  • スクロールすると位置が固定して追従

    カテゴリー:メニュー


    768px以下で動きを変更しています。PCの場合はこのページで動きをご確認ください
     

    HTMLの書き方

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

    <link rel="stylesheet" type="text/css" href="css/5-1-10.css">

    body内に追従するナビゲーションとコンテンツのHTMLを記載します。

    <header id="header">
    	<h1>Logo</h1>
    </header>
    
    <div id="container">
    	<main id="main-area">
    		<section id="area-1">
    			<h2>Area 1</h2>
    			<p>内容が入ります。</p>
    		<!--/area1--></section>
    		<section id="area-2">
    			<h2>Area 2</h2>
    			<p>内容が入ります。</p>
    		<!--/area2--></section>
    		<section id="area-3">
    			<h2>Area 3</h2>
    			<p>内容が入ります。</p>
    		<!--/area3--></section>
    	<!--/main--></main>
    	<aside id="sub-area">
    		<nav>
    			<ul id="g-navi">
    				<li><a href="#area-1">Area1</a></li>
    				<li><a href="#area-2">Area2</a></li>
    				<li><a href="#area-3">Area3</a></li>
    			</ul>
    		</nav>
    	</aside>
    <!--/container--></div>
    
    <footer id="footer">
    	<small>&copy; copyright.</small> 
    </footer>

    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/5-1-10.js"></script>

     

    CSSの書き方

    /*ナビゲーションの固定*/
    nav{
    	/*stickyで固定*/
    	position: -webkit-sticky;/*Safari*/
    	position: sticky;
    
    	/*固定したい位置*/
    	top: 100px;
    
    	/*ナビゲーションの形状*/
    	background:#fff;
    	border: 1px solid #eee;
    	box-shadow:0 0 5px #ddd;
    	padding: 20px;
    }
    
    /*レイアウトのためのCSS*/
    #container{
    	display: flex;
    	justify-content: space-between;
    	flex-wrap: wrap;
    }
    
    #main-area{
    	width:70%;
    }
    
    #sub-area{
    	width:25%;
    	padding: 0px 20px 0 0;
    }
    
    
    /*768px以下の見え方*/
    
    @media screen and (max-width:768px){
    	#main-area{
    		width:100%;
    	}
    
    	#sub-area{
    		width:100%;
    		padding: 20px;
    	}
    
    	nav{
    		position:relative;/*stickyからrelativeに戻す*/	
    		top:0;
    	}
    }
    
    /* 以下は検証用のレイアウトのための CSS*/
    nav ul{
    	list-style: none;
    }
    
    nav ul li a{
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    }
    
    section{
    	padding:300px 0;
    }
    

     

    JSの書き方

    //画面が読み込まれたら&リサイズされたら
    $(window).on('load resize', function() {
    	var windowWidth = window.innerWidth;
    	var elements = $('nav');//position: sticky;を指定している要素
    	if (windowWidth >= 768) {/*768px以上にIE用のJSをきかせる*/
    		Stickyfill.add(elements);
    	} else {
    		Stickyfill.remove(elements);
    	} 
    });
    
    //リンク先のidまでスムーススクロール
    //※ページ内リンクを行わない場合は不必要なので削除してください
    $('#g-navi li a').click(function () {
    	var elmHash = $(this).attr('href');
    	var pos = $(elmHash).offset().top-0;
    	$('body,html').animate({scrollTop: pos}, 1000);
    	return false;
    });
    投稿日:2022年07月15日
  • スクロール途中でヘッダーが消え、上にスクロールすると復活

    カテゴリー:メニュー


    768px以下で動きを変更しています。PCの場合はこのページで動きをご確認ください
     

    HTMLの書き方

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

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

    body内にヘッダーのナビゲーションとコンテンツのHTMLを記載します。

    <header id="header" class="DownMove">
    	<h1>Logo</h1>
    	<nav>
    		<ul id="g-navi">
    			<li><a href="#area-1">Area1</a></li>
    			<li><a href="#area-2">Area2</a></li>
    			<li><a href="#area-3">Area3</a></li>
    			<li><a href="#area-4">Area4</a></li>
    		</ul>
    	</nav>
    </header>
    
    <main>
    	<section id="area-1">
    		<h2>Area 1</h2>
    		<p>内容が入ります。</p>
    	<!--/area1--></section>
    	<section id="area-2"><!--Area2まできたらheaderが消え、上にスクロールすると復活します。-->
    		<h2>Area 2</h2>
    		<p>内容が入ります。</p>
    	<!--/area2--></section>
    	<section id="area-3">
    		<h2>Area 3</h2>
    		<p>内容が入ります。</p>
    	<!--/area3--></section>
    	<section id="area-4">
    		<h2>Area 4</h2>
    		<p>内容が入ります。</p>
    	<!--/area4--></section>
    <!--/main--></main>
    
    <footer id="footer">
    	<small>&copy; copyright.</small> 
    </footer>

    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/5-1-9.js"></script>

     

    CSSの書き方

    /*========= スクロール途中でヘッダーが表示&非表示するためのCSS ===============*/
    
    #header{
    	/*fixedで上部固定*/
    	position: fixed;
    	height: 70px;
    	width:100%;
    	z-index: 999;/*最前面へ*/
    
    	/*以下はレイアウトのためのCSS*/
    	display: flex;
    	justify-content: space-between;
    	align-items: center;
    	background:#333;
    	color:#fff;
    	text-align: center;
    	padding: 20px;
    }
    
    /* 上に上がる動き */
    #header.UpMove{
    	animation: UpAnime 0.5s forwards;
    }
    
    @keyframes UpAnime{
    	from {
    		opacity: 1;
    		transform: translateY(0);
    	}
    	to {
    		opacity: 0;
    		transform: translateY(-100px);
    	}
    }
    
    /* 下に下がる動き */
    #header.DownMove{
    	animation: DownAnime 0.5s forwards;
    }
    
    @keyframes DownAnime{
    	from {
    		opacity: 0;
    		transform: translateY(-100px);
    	}
    	to {
    		opacity: 1;
    		transform: translateY(0);
    	}
    }
    
    /* 以下は検証用のレイアウトのための CSS*/
    nav ul{
    	list-style: none;
    	display: flex;
    	justify-content: center;
    }
    
    nav ul li a{
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    }
    
    section{
    	padding:300px 0;
    }

     

    JSの書き方

    var beforePos = 0;//スクロールの値の比較用の設定
    
    //スクロール途中でヘッダーが消え、上にスクロールすると復活する設定を関数にまとめる
    function ScrollAnime() {
    	var elemTop = $('#area-2').offset().top;//#area-2の位置まできたら
    	var scroll = $(window).scrollTop();
    
    //ヘッダーの出し入れをする
    if(scroll == beforePos) {
    	//IE11対策で処理を入れない
    	}else if(elemTop > scroll || 0 > scroll - beforePos){
    		//ヘッダーが上から出現する
    		$('#header').removeClass('UpMove');	//#headerにUpMoveというクラス名を除き
    		$('#header').addClass('DownMove');//#headerにDownMoveのクラス名を追加
    	}else {
    		//ヘッダーが上に消える
    		$('#header').removeClass('DownMove');//#headerにDownMoveというクラス名を除き
    		$('#header').addClass('UpMove');//#headerにUpMoveのクラス名を追加
    	}
    	beforePos = scroll;//現在のスクロール値を比較用のbeforePosに格納
    }
    
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).scroll(function () {
    	ScrollAnime();//スクロール途中でヘッダーが消え、上にスクロールすると復活する関数を呼ぶ
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function () {
    	ScrollAnime();//スクロール途中でヘッダーが消え、上にスクロールすると復活する関数を呼ぶ
    });
    
    //リンク先のidまでスムーススクロール
    //※ページ内リンクを行わない場合は不必要なので削除してください
    var headerH = $("#header").outerHeight(true);//headerの高さを取得    
    $('#g-navi li a').click(function () {
    	var elmHash = $(this).attr('href'); 
    	var pos = $(elmHash).offset().top-headerH;//header分の高さを引いた高さまでスクロール
    	$('body,html').animate({scrollTop: pos}, 1000);
    	return false;
    });
    
    投稿日:2022年07月15日
  • スクロール途中からヘッダーの高さが小さくなる

    カテゴリー:メニュー


    768px以下で動きを変更しています。PCの場合はこのページで動きをご確認ください
     

    HTMLの書き方

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

    <link rel="stylesheet" type="text/css" href="css/5-1-8.css">

    body内にヘッダーのナビゲーションとコンテンツのHTMLを記載します。

    <header id="header">
    	<h1>Logo</h1>
    	<nav>
    		<ul id="g-navi">
    			<li><a href="#area-1">Area1</a></li>
    			<li><a href="#area-2">Area2</a></li>
    			<li><a href="#area-3">Area3</a></li>
    		</ul>
    	</nav>
    </header>
    
    <main>
    	<section id="area-1">
    		<h2>Area 1</h2>
    		<p>内容が入ります。</p>
    	<!--/area1--></section>
    	<section id="area-2">
    		<h2>Area 2</h2>
    		<p>内容が入ります。</p>
    	<!--/area2--></section>
    	<section id="area-3">
    		<h2>Area 3</h2>
    		<p>内容が入ります。</p>
    	<!--/area3--></section>
    	<section id="area-4">
    		<h2>Area 4</h2>
    		<p>内容が入ります。</p>
    	<!--/area4--></section>
    <!--/main--></main>
    
    <footer id="footer">
    	<small>&copy; copyright.</small> 
    </footer>

    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/5-1-8.js"></script>

     

    CSSの書き方

    /*========= スクロール途中からヘッダーの高さが小さくなるためのCSS ===============*/
    #header{
    	/*はじめの高さを設定*/
    	height: 170px;
    	width:100%;
    
    	/*以下はレイアウトのためのCSS*/
    	display: flex;
    	justify-content: space-between;
    	align-items: center;
    	background:#333;
    	color:#fff;
    	text-align: center;
    	padding: 20px;
    }
    
    /*HeightMinというクラス名がついたら高さを小さく、上部固定に*/
    #header.HeightMin{
    	position: fixed;
    	z-index: 999;/*最前面へ*/
    	height:70px;
    	animation: DownAnime 0.5s forwards;
    }
    
    @keyframes DownAnime{
    	from {
    		opacity: 0;
    		transform: translateY(-170px);
    	}
    to {
    		opacity: 1;
    		transform: translateY(0);
    	}
    }
    
    
    /* 以下は検証用のレイアウトのための CSS*/
    nav ul{
    	list-style: none;
    	display: flex;
    	justify-content: center;
    }
    
    nav ul li a{
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    }
    
    section{
    	padding:300px 0;
    }
    

     

    JSの書き方

    var headerH = $("#header").outerHeight(true);//headerの高さを取得
    
    //スクロール途中からヘッダーの高さを変化させるための設定を関数でまとめる
    function FixedAnime() {
    	//ヘッダーの高さを取得
    	var scroll = $(window).scrollTop();
    	if (scroll >= headerH){//ヘッダーの高さを超えたら
    	$('#header').addClass('HeightMin');//#headerについているHeightMinというクラス名を付与
    }else{
    		$('#header').removeClass('HeightMin');//HeightMinというクラス名を除去
    	}    
    }
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).scroll(function () {
    	FixedAnime();//スクロール途中からヘッダーの高さを変化させる関数を呼ぶ
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function () {
    	FixedAnime();//スクロール途中からヘッダーの高さを変化させる関数を呼ぶ
    });
    
    
    //リンク先のidまでスムーススクロール
    //※ページ内リンクを行わない場合は不必要なので削除してください
    $('#g-navi li a').click(function () {
    	var headerVal = $("#header").outerHeight(true);	//現在のheaderの高さを取得    
    
    	//ヘッダーが高さの状態を取得してスクロールする範囲を調整する
    	var scroll = $(window).scrollTop();	//スクロール
    	var adjust = 0					//調整の変数
    	if(scroll <= headerVal ){			//スクロールとヘッダーの高さを取得
    		adjust = 70;					//スクロール値がヘッダーの高さ以内であれば調整変数に70を入れる
    	}
    	
    	var elmHash = $(this).attr('href'); //hrefを取得
    	var pos = $(elmHash).offset().top-headerVal-adjust;	//クリックしたheader分の高さと調整分を引いた高さまでスクロール
    	
    	$('body,html').animate({scrollTop: pos}, 1000);
    	return false;
    });
    投稿日:2022年07月15日
  • スクロールするとハンバーガーメニューに変化

    カテゴリー:メニュー


    768px以下で動きを変更しています。PCの場合はこのページで動きをご確認ください
     

    HTMLの書き方

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

    <link rel="stylesheet" type="text/css" href="css/5-1-7.css">

    body内にヘッダーのナビゲーションとハンバーガーメニュー、コンテンツのHTMLを記載します。

    <header id="header">
    	<h1>Logo</h1>
    	<nav id="g-navi">
    		<ul>
    			<li><a href="#area-1">Area1</a></li>
    			<li><a href="#area-2">Area2</a></li>
    			<li><a href="#area-3">Area3</a></li>
    		</ul>
    	</nav>
    </header>
    
    <div class="openbtn"><span></span><span></span><span></span></div>
    
    <main>
    	<section id="area-1">
    		<h2>Area 1</h2>
    		<p>内容が入ります。</p>
    	<!--/area1--></section>
    	<section id="area-2">
    		<h2>Area 2</h2>
    		<p>内容が入ります。</p>
    	<!--/area2--></section>
    	<section id="area-3">
    		<h2>Area 3</h2>
    		<p>内容が入ります。</p>
    	<!--/area3--></section>
    <!--/main--></main>
    
    <footer id="footer">
    	<small>&copy; copyright.</small> 
    </footer>

    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/5-1-7.js"></script>

     

    CSSの書き方

    /*========= 途中からハンバーガーメニューに変化するのためのCSS ===============*/
    
    /*========= ボタンのためのCSS ===============*/
    
    /*ボタン全体の形状*/
    .openbtn{
    	/*はじめは非表示に*/
    	display: none;
    
    	/*ボタンの位置*/
    	position:fixed;
    	top:10px;
    	right: 10px;
    	z-index: 999;
    
    	/*ボタンの形状*/
    	background:#666;
    	cursor: pointer;
    	width: 50px;
    	height:50px;
    	border-radius: 5px;
    }
    
    /*ボタンのアイコン設定*/
    .openbtn span{
    	display: inline-block;
    	transition: all .4s;
    	position: absolute;
    	left: 14px;
    	height: 3px;
    	border-radius: 2px;
    	background-color: #fff;
    	width: 45%;
    }
    
    .openbtn span:nth-of-type(1) {
    	top:15px;	
    }
    
    .openbtn span:nth-of-type(2) {
    	top:23px;
    }
    
    .openbtn span:nth-of-type(3) {
    	top:31px;
    }
    
    /*activeクラスが付与された後のボタンのアイコン設定*/
    .openbtn.active span:nth-of-type(1) {
    	top: 18px;
    	left: 18px;
    	transform: translateY(6px) rotate(-45deg);
    	width: 30%;
    }
    
    .openbtn.active span:nth-of-type(2) {
    	opacity: 0;
    }
    
    .openbtn.active span:nth-of-type(3){
    	top: 30px;
    	left: 18px;
    	transform: translateY(-6px) rotate(45deg);
    	width: 30%;
    }
    
    /*fadeDownクラスが付与された後のボタンの出現アニメーション設定*/
    .fadeDown {
    	animation-name: fadeDownAnime;
    	animation-duration: 0.5s;
    	animation-fill-mode: forwards;
    	opacity: 0;
    	display: block;
    }
    
    @keyframes fadeDownAnime{
    	from {
    		opacity: 0;
    		transform: translateY(-100px);
    	}
    	to {
    		opacity: 1;
    		transform: translateY(0);
    	}
    }
    
    
    /*========= ヘッダーナビゲーションのためのCSS ===============*/
    
    /*==ヘッダーの形状*/
    #header{
    	height: 70px;
    	width:100%;
    	display: flex;
    	justify-content: space-between;
    	align-items: center;
    	background:#333;
    	color:#fff;
    	text-align: center;
    	padding: 20px;
    }
    
    /*.doneクラスがついたヘッダー*/
    #header.dnone {
    	opacity: 0;/*透過0にして非表示に*/
    }
    
    /*メニューボタンをクリックした際に付与されるpanelactiveクラスがついたら*/
    #header.dnone.panelactive {
    	opacity: 1;/*不透明にして出現*/
    }
    
    /*==ヘッダーのテキストナビゲーションの形状*/
    #g-navi ul{
    	list-style: none;
    	display: flex;
    	justify-content: center;
    }
    
    #g-navi ul li a{
    	display: block;
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    }
    
    #g-navi ul li.current a,
    #g-navi ul li a:hover{
    	color:#fff;	
    }
    
    /*.doneクラスがついたヘッダーのテキストナビゲーションの形状*/
    #header.dnone #g-navi{
    	/*固定位置にして最背面に*/
    	position:fixed;
    	top: 0;
    	left: 0;
    	z-index: -1;
    
    	/*高さと幅*/  
    	width:100%;
    	height: 100vh;
    
    	/*天地中央&テキスト中央揃え*/  
    	display: flex;
    	justify-content: center;
    	align-items: center;
    	text-align: center;
    
    	/*はじめは透過0に*/  
    	opacity: 0;
    	transition: all 0.4s;
    }
    
    
    /*メニューボタンをクリックした際に付与されるpanelactiveクラスがついたナビゲーションの形状*/
    #header.dnone.panelactive #g-navi{
    	opacity: 1;/*不透明に*/
    	z-index:3;/*最前面に*/
    	background:#eee;
    }
    
    #header.dnone.panelactive #g-navi ul{
    	display:block;/*flexの横並びをblockにして縦並びに*/
    }
    
    
    /*リストの形状*/
    
    #header.dnone.panelactive #g-navi li a{
    	color: #333;
    	text-decoration: none;
    	padding:10px;
    	display: block;
    	text-transform: uppercase;
    	letter-spacing: 0.1em;
    	font-weight: bold;
    	transition:all 0.3s;
    }
    
    /* 以下は検証用のレイアウトのための CSS*/
    section{
    	padding:300px 0;
    }
    

     

    JSの書き方

    //スクロールをするとハンバーガーメニューに変化するための設定を関数でまとめる
    function FixedAnime() {
    	//ヘッダーの高さを取得
    	var headerH = $('#header').outerHeight(true);
    	var scroll = $(window).scrollTop();
    	if (scroll >= headerH){//ヘッダーの高さ以上までスクロールしたら
    		$('.openbtn').addClass('fadeDown');//.openbtnにfadeDownというクラス名を付与して
    		$('#header').addClass('dnone');//#headerにdnoneというクラス名を付与
    	}else{//それ以外は
    		$('.openbtn').removeClass('fadeDown');//fadeDownというクラス名を除き
    		$('#header').removeClass('dnone');//dnoneというクラス名を除く
    	}
    }
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).scroll(function () {
    	FixedAnime();//スクロールをするとハンバーガーメニューに変化するための関数を呼ぶ
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function () {
    	FixedAnime();//スクロールをするとハンバーガーメニューに変化するための関数を呼ぶ
    });
    
    
    //ボタンをクリックした際のアニメーションの設定
    $(".openbtn").click(function () {//ボタンがクリックされたら
    	$(this).toggleClass('active');//ボタン自身に activeクラスを付与し
    	$("#header").toggleClass('panelactive');//ヘッダーにpanelactiveクラスを付与
    });
    $("#g-navi li a").click(function () {//ナビゲーションのリンクがクリックされたら
    	$(".openbtn").removeClass('active');//ボタンの activeクラスを除去し
    	$("#header").removeClass('panelactive');//ヘッダーのpanelactiveクラスも除去
    });
    
    
    //リンク先のidまでスムーススクロール
    //※ページ内リンクを行わない場合は不必要なので削除してください
    $('#g-navi li a').click(function () {
    	var elmHash = $(this).attr('href');
    	var pos = $(elmHash).offset().top-0;
    	$('body,html').animate({scrollTop: pos}, 1000);
    	return false;
    });
    投稿日:2022年07月15日
  • スクロール途中から上部固定

    カテゴリー:メニュー


    768px以下で動きを変更しています。PCの場合はこのページで動きをご確認ください
     

    HTMLの書き方

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

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

    body内に上部固定させるナビゲーションとコンテンツのHTMLを記載します。

    <header id="header">
    	<h1>Logo</h1>
    	<nav>
    		<ul id="g-navi">
    			<li><a href="#area-1">Area1</a></li>
    			<li><a href="#area-2">Area2</a></li>
    			<li><a href="#area-3">Area3</a></li>
    			<li><a href="#area-4">Area4</a></li>
    		</ul>
    	</nav>
    </header>
    
    <main>
    	<section id="area-1">
    		<h2>Area 1</h2>
    		<p>内容が入ります</p>
    	<!--/area1--></section>
    	<section id="area-2">
    		<h2>Area 2</h2>
    		<p>内容が入ります</p>
    	<!--/area2--></section>
    	<section id="area-3"><!--Area3まできたらheaderが上部に固定されます。-->
    		<h2>Area 3</h2>
    		<p>内容が入ります</p>
    	<!--/area3--></section>
    	<section id="area-4">
    		<h2>Area 4</h2>
    		<p>内容が入ります</p>
    	<!--/area4--></section>
    <!--/main--></main>
    
    <footer id="footer">
    	<small>&copy; copyright.</small> 
    </footer>

    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/5-1-6.js"></script>

     

    CSSの書き方

    /*========= 上部固定させるためのCSS ===============*/
    
    #header{
    	position: fixed;/*fixedを設定して固定*/
    	height: 70px;/*高さ指定*/
    	width:100%;/*横幅指定*/
    	z-index: 999;/*最前面へ*/
    
    	/*以下はレイアウトのためのCSS*/
    	display: flex;
    	justify-content: space-between;
    	align-items: center;
    	background:#333;
    	color:#fff;
    	text-align: center;
    	padding: 20px;
    }
    
    
    /*==ふわっと出現させるためのCSS*/
    
    /* 上に上がる動き */
    
    #header.UpMove{
    	position: fixed;
    	width:100%;
    	animation: UpAnime 0.5s forwards;
    }
    
    @keyframes UpAnime{
    	from {
    		opacity: 1;
    		transform: translateY(0);
    	}
    	to {
    		opacity: 0;
    		transform: translateY(-100px);
    	}
    }
    
    /* 下に下がる動き */
    #header.DownMove{
    	position: fixed;
    	width:100%;
    	animation: DownAnime 0.5s forwards;
    }
    
    @keyframes DownAnime{
    	from {
    		opacity: 0;
    		transform: translateY(-100px);
    	}
    	to {
    		opacity: 1;
    		transform: translateY(0);
    	}
    }
    
    /*以下は検証用のレイアウトのためのCSS*/
    nav ul{
    	list-style: none;
    	display: flex;
    	justify-content: center;
    }
    
    nav ul li a{
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    }
    
    section{
    	padding:300px 0;
    }
    

     

    JSの書き方

    //スクロール途中からヘッダーを出現させるための設定を関数でまとめる
    function FixedAnime() {
    	var elemTop = $('#area-3').offset().top;//#area-3の位置まできたら
    	var scroll = $(window).scrollTop();
    	if(scroll <= 20){//上から20pxスクロールされたら $('#header').addClass('DownMove');//DownMoveというクラス名を除き } else if (scroll >= elemTop){
    		$('#header').removeClass('UpMove');//#headerについているUpMoveというクラス名を除く
    		$('#header').addClass('DownMove');//#headerについているDownMoveというクラス名を付与
    	}else{
    		if($('#header').hasClass('DownMove')){//すでに#headerにDownMoveというクラス名がついていたら
    			$('#header').removeClass('DownMove');//DownMoveというクラス名を除き
    			$('#header').addClass('UpMove');//UpnMoveというクラス名を付与
    		}
    	}
    }
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).scroll(function () {
    	FixedAnime();/* スクロール途中からヘッダーを出現させる関数を呼ぶ*/
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function () {
    	FixedAnime();/* スクロール途中からヘッダーを出現させる関数を呼ぶ*/
    });
    
    投稿日:2022年07月15日
15 / 19TopPrev...1314151617...NextLast

アーカイブ

  • 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.