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

JS

カテゴリーページ

  • 任意の場所をクリックすると隠れていた内容が開く

    カテゴリー:アコーディオンパネル


     

    HTMLの書き方

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

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

     

    body内にアコーディオンのHTMLを記載します。

    <ul class="accordion-area">
    	<li><!--li ~ /li までが一つのアコーディオン-->
    		<section>
    			<h3 class="title">タイトル</h3>
    			<div class="box">
    				<p>内容が入ります。</p>
    			</div>
    		</section>
    	</li>
    	<li>
    		<section>
    			<h3 class="title">タイトル</h3>
    			<div class="box">
    				<p>内容が入ります。</p>
    			</div>
    		</section>
    	</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-2-1.js"></script>

     

    CSSの書き方

    /*アコーディオン全体*/
    .accordion-area {
    	list-style: none;
    	width: 96%;
    	max-width: 900px;
    	margin:0 auto;
    }
    
    .accordion-area li {
    	margin: 10px 0;
    }
    
    .accordion-area section {
    	border: 1px solid #ccc;
    }
    
    /*アコーディオンタイトル*/
    .title {
    	position: relative;/*+マークの位置基準とするためrelative指定*/
    	cursor: pointer;
    	font-size:1rem;
    	font-weight: normal;
    	padding: 3% 3% 3% 50px;
    	transition: all .5s ease;
    }
    
    /*アイコンの+と×*/
    .title::before,
    .title::after{
    	position: absolute;
    	content:'';
    	width: 15px;
    	height: 2px;
    	background-color: #333; 
    }
    
    .title::before{
    	top:48%;
    	left: 15px;
    	transform: rotate(0deg);
    }
    
    .title::after{    
    	top:48%;
    	left: 15px;
    	transform: rotate(90deg);
    }
    
    /* closeというクラスがついたら形状変化 */
    .title.close::before{
    	transform: rotate(45deg);
    }
    
    .title.close::after{
    	transform: rotate(-45deg);
    }
    
    /*アコーディオンで現れるエリア*/
    .box {
    	display: none;/*はじめは非表示*/
    	background: #f3f3f3;
    	margin:0 3% 3% 3%;
    	padding: 3%;
    }
    

     

    JSの書き方

    //アコーディオンをクリックした時の動作
    $('.title').on('click', function() {//タイトル要素をクリックしたら
    	var findElm = $(this).next(".box");//直後のアコーディオンを行うエリアを取得し
    	$(findElm).slideToggle();//アコーディオンの上下動作
    	if($(this).hasClass('close')){//タイトル要素にクラス名closeがあれば
    		$(this).removeClass('close');//クラス名を除去し
    	}else{//それ以外は
    		$(this).addClass('close');//クラス名closeを付与
    	}
    });
    
    
    //ページが読み込まれた際にopenクラスをつけ、openがついていたら開く動作※不必要なら下記全て削除
    $(window).on('load', function(){
    	$('.accordion-area li:first-of-type section').addClass("open"); //accordion-areaのはじめのliにあるsectionにopenクラスを追加
    	$(".open").each(function(index, element){	//openクラスを取得
    		var Title =$(element).children('.title');	//openクラスの子要素のtitleクラスを取得
    		$(Title).addClass('close');				//タイトルにクラス名closeを付与し
    		var Box =$(element).children('.box');	//openクラスの子要素boxクラスを取得
    		$(Box).slideDown(500);					//アコーディオンを開く
    	});
    });
    
    投稿日:2022年07月21日
  • スクロールアニメーション

    カテゴリー:アニメーション


     

    Delighters -GitHub(ダウンロードはこのサイトから)
     

    Delightersの使い方
    当スクリプトを外部ファイルとして記述します。

    <script type="text/javascript" src="delighters.js">

     

    HTMLはアニメーションを与える要素に「data-delighter」を加えるだけです。

    <div class="foo" data-delighter>
    <div class="foo" data-delighter="start:1.0">

     

    アニメーションの設定
    アニメーションは、CSSで設定します。
    要素に基本のスタイルを定義し、アニメーションのスタート時とエンド時のスタイルを定義します。.delighter, .started, .endedはスクロール時に自動で適用されます。

    /* 基本のスタイル */
    .foo.delighter {
    	transition: all .3s ease-out;
    	transform: translateX(-100%);
    	opacity: 0;
    }
     
    /* スタート時のスタイル */
    .foo.delighter.started {
    	transform: none;
    	opacity: 1;
    }
     
    /* エンド時のスタイル */
    .foo.delighter.started.ended {
    	border: solid red 10px;
    }
    

     

    動作の仕組み

    • Delighters.jsは、ユーザーがスクロールした時にclassを切り替えます。
    • 要素がブラウザのビューポートの高さの75%を上回ると、.startedが適用される。
    • 要素の下部が75%を過ぎると、.endが適用されます。

    ※この値はスクリプトのオプションで変更できます。

    options = {
    	attribute:  'data-delighter', // 属性
    	classNames: ['delighter', 'started', 'ended'], // クラス名
    	start:      0.75, // デフォルトの開始値
    	end:        0.75, // デフォルトの終了値
    	autoInit:   true  // DOMContentLoaded時に初期化
    }
    投稿日:2022年07月20日
  • プログレスバー+数字カウントアップ+画面が開く

    カテゴリー:ローディング


    動きを確認する
     

    HTMLの書き方

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

    <link rel="stylesheet" type="text/css" href="css/4-1-3.css">

    body内のローディングを表示させたい場所に以下のHTMLを記載します。

    <div id="splash">
    	<div id="splash_text"></div>
    	<div class="loader_cover loader_cover-up"></div><!--上に上がるエリア-->
    	<div class="loader_cover loader_cover-down"></div><!--下に下がるエリア-->
    <!--/splash--></div>
    <div id="container">
    	<p>ローディング後、この画面が見えます。</p>
    <!--/container--></div>

    body 終了タグ直前に jQuery、ProgressBar.js、動きを制御する自作のJS の3 つを読み込みます。また、IE11 に対応したい場合はIE対策用のJSを追加で2 つ読み込みます。

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="https://rawgit.com/kimmobrunfeldt/progressbar.js/master/dist/progressbar.min.js"></script>
    <!--IE11用※対応しなければ削除してください-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script><!--不必要なら削除-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.min.js"></script><!--不必要なら削除-->
    <!--自作のJS-->
    <script src="js/4-1-3.js"></script>

     

    CSSの書き方

    /*========= LoadingのためのCSS ===============*/
    
    /* Loading背景画面設定 */
    #splash {
    	/*fixedで全面に固定*/
    	position: fixed;
    	width: 100%;
    	height: 100%;
    	z-index: 999;
    	text-align:center;
    	color:#fff;
    }
    
    /* Loading画像中央配置 */
    #splash_text {
    	position: absolute;
    	top: 50%;
    	left: 50%;
    	z-index: 999;
    	transform: translate(-50%, -50%);
    	color: #fff;
    	width: 100%;
    }
    
    /*IE11対策用バーの線の高さ※対応しなければ削除してください*/
    #splash_text svg{
    	height: 2px;
    }
    
    /*割れる画面のアニメーション*/
    .loader_cover {
    	width: 100%;
    	height: 50%;
    	background-color: #333;
    	transition: all .2s cubic-bezier(.04, .435, .315, .9);
    	transform: scaleY(1);
    }
    
    /*上の画面*/
    .loader_cover-up {
    	transform-origin: center top;
    }
    
    /*下の画面*/
    .loader_cover-down {
    	position: absolute;
    	bottom: 0;
    	transform-origin: center bottom;
    }
    
    /*クラス名がついたらY軸方向に0*/
    .coveranime {
    	transform: scaleY(0);
    }
    

     

    JSの書き方

    //テキストのカウントアップ+バーの設定
    var bar = new ProgressBar.Line(splash_text, {//id名を指定
    	easing: 'easeInOut',//アニメーション効果linear、easeIn、easeOut、easeInOutが指定可能
    	duration: 1000,//時間指定(1000=1秒)
    	strokeWidth: 0.2,//進捗ゲージの太さ
    	color: '#555',//進捗ゲージのカラー
    	trailWidth: 0.2,//ゲージベースの線の太さ
    	trailColor: '#bbb',//ゲージベースの線のカラー
    	text: {//テキストの形状を直接指定				
    		style: {//天地中央に配置
    			position: 'absolute',
    			left: '50%',
    			top: '50%',
    			padding: '0',
    			margin: '-30px 0 0 0',//バーより上に配置
    			transform:'translate(-50%,-50%)',
    			'font-size':'1rem',
    			color: '#fff',
    		},
    		autoStyleContainer: false //自動付与のスタイルを切る
    	},
    	step: function(state, bar) {
    		bar.setText(Math.round(bar.value() * 100) + ' %'); //テキストの数値
    	}
    });
    
    //アニメーションスタート
    bar.animate(1.0, function () {//バーを描画する割合を指定します 1.0 なら100%まで描画します
    	$("#splash_text").fadeOut(10);//フェイドアウトでローディングテキストを削除
    	$(".loader_cover-up").addClass("coveranime");//カバーが上に上がるクラス追加
    	$(".loader_cover-down").addClass("coveranime");//カバーが下に下がるクラス追加
    	$("#splash").fadeOut();//#splashエリアをフェードアウト
    });
    
    投稿日:2022年07月15日
  • 数字カウントアップ

    カテゴリー:ローディング


    動きを確認する
     

    HTMLの書き方

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

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

    body内のローディングを表示させたい場所に以下のHTMLを記載します。

    <div id="splash">
    	<div id="splash_text"></div>
    <!--/splash--></div>
    <div id="container">
    	<p>ローディング後、この画面が見えます。</p>
    <!--/container--></div>

    body 終了タグ直前に jQuery、ProgressBar.js、動きを制御する自作のJS の3 つを読み込みます。
    また、IE11 に対応したい場合はIE対策用のJSを追加で2 つ読み込みます。

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="https://rawgit.com/kimmobrunfeldt/progressbar.js/master/dist/progressbar.min.js"></script>
    <!--IE11用-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script><!--不必要なら削除してください-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.min.js"></script><!--不必要なら削除してください-->
    <!--自作のJS-->
    <script src="js/4-1-1.js"></script>

     

    CSSの書き方

    /* Loading背景画面設定 */
    #splash {
    	/*fixedで全面に固定*/
    	position: fixed;
    	z-index: 999;
    	width: 100%;
    	height: 100%;
    	background:#333;
    	text-align:center;
    	color:#fff;
    }
    

     

    JSの書き方

    var bar = new ProgressBar.Line(splash_text, {//id名を指定
    	strokeWidth: 0,//進捗ゲージの太さ
    	duration: 1000,//時間指定(1000=1秒)
    	trailWidth: 0,//線の太さ
    	text: {//テキストの形状を直接指定	
    		style: {//天地中央に配置
    			position:'absolute',
    			left:'50%',
    			top:'50%',
    			padding:'0',
    			margin:'0',
    			transform:'translate(-50%,-50%)',
    			'font-size':'1.2rem',
    			color:'#fff',
    		},
    	autoStyleContainer: false //自動付与のスタイルを切る
    	},
    	step: function(state, bar) {
    		bar.setText(Math.round(bar.value() * 100) + ' %'); //テキストの数値
    	}
    });
    
    //アニメーションスタート
    bar.animate(1.0, function () {//バーを描画する割合を指定します 1.0 なら100%まで描画します
    	$("#splash").delay(500).fadeOut(800);//アニメーションが終わったら#splashエリアをフェードアウト
    });
    
    投稿日:2022年07月15日
  • 追従メニューの現在地ハイライト

    カテゴリー:メニュー


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

    HTMLの書き方

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

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

    body内にリンク元のHTMLとリンク先のHTMLを記載します。

    <header id="header">
    	<h1>Logo</h1>
    	<nav id="g-nav">
    		<ul>
    			<li><a href="#area-1">Area1</a></li><!--現在地のliにはJavaScriptでcurrentというクラス名がつきます-->
    			<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 class="scroll-point" id="area-1">
    		<h2>Area 1</h2>
    		<p>内容が入ります。</p>
    	<!--/area1--></section>
    	<section class="scroll-point" id="area-2">
    		<h2>Area 2</h2>
    		<p>内容が入ります。</p>
    	<!--/area2--></section>
    	<section class="scroll-point" id="area-3">
    		<h2>Area 3</h2>
    		<p>内容が入ります。</p>
    	<!--/area3--></section>
    	<section class="scroll-point" id="area-4">
    		<h2>Area 4</h2>
    		<p>内容が入ります。</p>
    		<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-26.js"></script>

     

    CSSの書き方

    /*========= 現在地表示のためのCSS ===============*/
    
    #header{
    	position: fixed;/*header固定*/
    	height: 70px;/*Headerの高さ設定*/
    	width:100%;
    	display: flex;
    	justify-content: space-between;
    	align-items: center;
    	background:#333;
    	color:#fff;
    	text-align: center;
    }
    
    
    /* 以下はレイアウトのための CSS*/
    
    nav ul{
    	list-style: none;
    	display: flex;
    }
    
    nav ul li a{
    	display: block;
    	text-decoration: none;
    	color: #666;
    	padding:10px;
    	transition:all 0.3s;
    }
    
    nav ul li.current a,
    nav ul li a:hover{
    	color:#fff;
    }
    
    @media screen and (max-width:768px) {
    	nav ul li a:hover{
    		color: #666;
    	}
    
    	nav ul li.current a {
    		color:#fff;
    	}
    }
    
    section{
    	padding: 300px 0;
    }
    
    footer{
    	padding: 50px 0;
    }
    

     

    JSの書き方

    //基準点の準備
    var elemTop = [];
    
    //現在地を取得するための設定を関数でまとめる
    function PositionCheck(){
    
    	//headerの高さを取得
    	var headerH = $("#header").outerHeight(true);
    
    	//.scroll-pointというクラス名がついたエリアの位置を取得する設定
    	$(".scroll-point").each(function(i) {//.scroll-pointクラスがついたエリアからトップまでの距離を計算して設定
    		elemTop[i] =Math.round(parseInt($(this).offset().top-headerH));//追従するheader分の高さ(70px)を引き小数点を四捨五入
    	});
    }
    
    //ナビゲーションに現在地のクラスをつけるための設定
    function ScrollAnime() {//スクロールした際のナビゲーションの関数にまとめる
    	var scroll = Math.round($(window).scrollTop());
    	var NavElem = $("#g-nav li");//ナビゲーションのliの何番目かを定義するための準備
    	$("#g-nav li").removeClass('current');//全てのナビゲーションの現在地クラスを除去
    	if(scroll >= 0 && scroll < elemTop[1]) {//スクロール値が0以上 .scroll-point 1つめ(area-1)の高さ未満
    		$(NavElem[0]).addClass('current');//1つめのliに現在地クラスを付与
    	}
    	else if(scroll >= elemTop[1] && scroll < elemTop[2]) {//.scroll-point 1つめ(area-1)以上.scroll-point 2つめ(area-2)未満
    		$(NavElem[1]).addClass('current');//2つめのliに現在地クラスを付与
    	} 
    	else if(scroll >= elemTop[2] && scroll < elemTop[3]) {//.scroll-point 2つめ(area-2)以上.scroll-point 3つめ(area-3)未満
    		$(NavElem[2]).addClass('current');//3つめのliに現在地クラスを付与
    	} 
    	else if(scroll >= elemTop[3]) {// .scroll-point 3つめ(area-3)以上
    		$(NavElem[3]).addClass('current');//4つめのliに現在地クラスを付与
    	} 
    }
    
    //ナビゲーションをクリックした際のスムーススクロール
    $('#g-nav a').click(function () {
    	var elmHash = $(this).attr('href'); //hrefの内容を取得
    	var headerH = $("#header").outerHeight(true);//追従するheader分の高さ(70px)を引く
    	var pos = Math.round($(elmHash).offset().top-headerH); //headerの高さを引き小数点を四捨五入
    	$('body,html').animate({scrollTop: pos}, 500);//取得した位置にスクロール※数値が大きいほどゆっくりスクロール
    	return false;//リンクの無効化
    });
    
    // 画面をスクロールをしたら動かしたい場合の記述
    $(window).scroll(function () {
    	PositionCheck();/* 現在地を取得する関数を呼ぶ*/
    	ScrollAnime();/* ナビゲーションに現在地のクラスをつけるための関数を呼ぶ*/
    });
    
    // ページが読み込まれたらすぐに動かしたい場合の記述
    $(window).on('load', function () {
    	PositionCheck();/* 現在地を取得する関数を呼ぶ*/
    	ScrollAnime();/* ナビゲーションに現在地のクラスをつけるための関数を呼ぶ*/
    });
    
    $(window).resize(function() {
    	//リサイズされたときの処理
    	PositionCheck()
    });
    
    投稿日:2022年07月15日
11 / 19TopPrev...910111213...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.