HTMLの書き方
head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" type="text/css" href="css/8-12.css">
body内のテキストを表示させたい場所にHTMLを記載します。
<p><span class="bgextend bgLRextendTrigger"><span class="bgappearTrigger">背景色が伸びて出現(左から右)</span></span></p>
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/8-12.js"></script>
CSSの書き方
/*全共通*/
.bgextend{
animation-name:bgextendAnimeBase;
animation-duration:1s;
animation-fill-mode:forwards;
position: relative;
overflow: hidden;/* はみ出た色要素を隠す */
opacity:0;
}
@keyframes bgextendAnimeBase{
from {
opacity:0;
}
to {
opacity:1;
}
}
/*中の要素*/
.bgappear{
animation-name:bgextendAnimeSecond;
animation-duration:1s;
animation-delay: 0.6s;
animation-fill-mode:forwards;
opacity: 0;
}
@keyframes bgextendAnimeSecond{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/*左から右*/
.bgLRextend::before{
animation-name:bgLRextendAnime;
animation-duration:1s;
animation-fill-mode:forwards;
content: "";
position: absolute;
width: 100%;
height: 100%;
background-color: #666;/*伸びる背景色の設定*/
}
@keyframes bgLRextendAnime{
0% {
transform-origin:left;
transform:scaleX(0);
}
50% {
transform-origin:left;
transform:scaleX(1);
}
50.001% {
transform-origin:right;
}
100% {
transform-origin:right;
transform:scaleX(0);
}
}
/* スクロールをしたら出現する要素にはじめに透過0を指定 */
.bgappearTrigger,
.bgLRextendTrigger{
opacity: 0;
}
JSの書き方
// 動きのきっかけの起点となるアニメーションの名前を定義
function BgFadeAnime(){
// 背景色が伸びて出現(左から右)
$('.bgLRextendTrigger').each(function(){ //bgLRextendTriggerというクラス名が
var elemPos = $(this).offset().top-50;//要素より、50px上の
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll >= elemPos - windowHeight){
$(this).addClass('bgLRextend');// 画面内に入ったらbgLRextendというクラス名を追記
} else {
$(this).removeClass('bgLRextend');// 画面外に出たらbgLRextendというクラス名を外す
}
});
// 文字列を囲う子要素
$('.bgappearTrigger').each(function(){ //bgappearTriggerというクラス名が
var elemPos = $(this).offset().top-50;//要素より、50px上の
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll >= elemPos - windowHeight){
$(this).addClass('bgappear');// 画面内に入ったらbgappearというクラス名を追記
} else {
$(this).removeClass('bgappear');// 画面外に出たらbgappearというクラス名を外す
}
});
}
// 画面をスクロールをしたら動かしたい場合の記述
$(window).scroll(function (){
BgFadeAnime();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面をスクロールをしたら動かしたい場合の記述
// 画面が読み込まれたらすぐに動かしたい場合の記述
$(window).on('load', function(){
BgFadeAnime();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面が読み込まれたらすぐに動かしたい場合の記述
HTMLの書き方
head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" type="text/css" href="css/8-11.css">
body内のテキストを表示させたい場所にHTMLを記載します。
<p class="eachTextAnime">テキストが1文字ずつ出てきます</p>
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/8-11.js"></script>
CSSの書き方
.eachTextAnime span{
opacity: 0;
}
.eachTextAnime.appeartext span{
animation:text_anime_on 1s ease-out forwards;
}
@keyframes text_anime_on {
0% {
opacity:0;
}
100% {
opacity:1;
}
}
JSの書き方
// eachTextAnimeにappeartextというクラス名を付ける定義
function EachTextAnimeControl() {
$('.eachTextAnime').each(function () {
var elemPos = $(this).offset().top - 50;
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll >= elemPos - windowHeight) {
$(this).addClass("appeartext");
} else {
$(this).removeClass("appeartext");
}
});
}
// 画面をスクロールをしたら動かしたい場合の記述
$(window).scroll(function () {
EachTextAnimeControl();/* アニメーション用の関数を呼ぶ*/
}); // ここまで画面をスクロールをしたら動かしたい場合の記述
// 画面が読み込まれたらすぐに動かしたい場合の記述
$(window).on('load', function () {
//spanタグを追加する
var element = $(".eachTextAnime");
element.each(function () {
var text = $(this).text();
var textbox = "";
text.split('').forEach(function (t, i) {
if (t !== " ") {
if (i < 10) {
textbox += '<span style="animation-delay:.' + i + 's;">' + t + '</span>';
} else {
var n = i / 10;
textbox += '<span style="animation-delay:' + n + 's;">' + t + '</span>';
}
} else {
textbox += t;
}
});
$(this).html(textbox);
});
EachTextAnimeControl();/* アニメーション用の関数を呼ぶ*/
}); // ここまで画面が読み込まれたらすぐに動かしたい場合の記述
HTMLの書き方
head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" type="text/css" href="css/8-10.css">
body内のテキストを表示させたい場所にHTMLを記載します。
<p class="TextTyping">ABCDEFGHIJKLMN</p>
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/8-10.js"></script>
CSSの書き方
.TextTyping span {
display: none;
}
/*文字列後ろの線の設定*/
.TextTyping::after {
content: "|";
animation: typinganime .8s ease infinite;
}
@keyframes typinganime{
from{
opacity:0
}
to{
opacity:1
}
}
JSの書き方
// TextTypingというクラス名がついている子要素(span)を表示から非表示にする定義
function TextTypingAnime() {
$('.TextTyping').each(function () {
var elemPos = $(this).offset().top - 50;
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
var thisChild = "";
if (scroll >= elemPos - windowHeight) {
thisChild = $(this).children(); //spanタグを取得
//spanタグの要素の1つ1つ処理を追加
thisChild.each(function (i) {
var time = 100;
//時差で表示する為にdelayを指定しその時間後にfadeInで表示させる
$(this).delay(time * i).fadeIn(time);
});
} else {
thisChild = $(this).children();
thisChild.each(function () {
$(this).stop(); //delay処理を止める
$(this).css("display", "none"); //spanタグ非表示
});
}
});
}
// 画面をスクロールをしたら動かしたい場合の記述
$(window).scroll(function () {
TextTypingAnime();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面をスクロールをしたら動かしたい場合の記述
// 画面が読み込まれたらすぐに動かしたい場合の記述
$(window).on('load', function () {
//spanタグを追加する
var element = $(".TextTyping");
element.each(function () {
var text = $(this).html();
var textbox = "";
text.split('').forEach(function (t) {
if (t !== " ") {
textbox += '<span>' + t + '</span>';
} else {
textbox += t;
}
});
$(this).html(textbox);
});
TextTypingAnime();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面が読み込まれたらすぐに動かしたい場合の記述
HTMLの書き方
head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" type="text/css" href="css/8-9.css">
body内のテキストを表示させたい場所にHTMLを記載します。
<p><span class="blurTrigger">テキストがじわっと出てきますIE11は非対応</span></p>
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/8-9.js"></script>
CSSの書き方
.blur{
animation-name:blurAnime;
animation-duration:1s;
animation-fill-mode:forwards;
}
@keyframes blurAnime{
from {
filter: blur(10px);
transform: scale(1.02);
opacity: 0;
}
to {
filter: blur(0);
transform: scale(1);
opacity: 1;
}
}
.blurTrigger{
opacity: 0;
}
JSの書き方
// blurTriggerにblurというクラス名を付ける定義
function BlurTextAnimeControl() {
$('.blurTrigger').each(function(){ //blurTriggerというクラス名が
var elemPos = $(this).offset().top-50;//要素より、50px上の
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll >= elemPos - windowHeight){
$(this).addClass('blur');// 画面内に入ったらblurというクラス名を追記
}else{
$(this).removeClass('blur');// 画面外に出たらblurというクラス名を外す
}
});
}
// 画面をスクロールをしたら動かしたい場合の記述
$(window).scroll(function () {
BlurTextAnimeControl();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面をスクロールをしたら動かしたい場合の記述
// 画面が読み込まれたらすぐに動かしたい場合の記述
$(window).on('load', function () {
BlurTextAnimeControl();/* アニメーション用の関数を呼ぶ*/
});// ここまで画面が読み込まれたらすぐに動かしたい場合の記述
HTMLの書き方
head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.css">
<link rel="stylesheet" type="text/css" href="css/8-8.css">
body内のテキストを表示させたい場所にHTMLを記載します。
ランダムに出現する
body 終了タグ直前にjQuery、textillate.js、lettering.jsと、動きを制御する自作のJS の4 つを読み込みます。
※lettering.jsは、https://github.com/davatron5000/Lettering.jsからダウンロードして使用してください
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/textillate/0.4.0/jquery.textillate.min.js"></script>
<script src="js/jquery.lettering.js"></script>
<!--自作のJS-->
<script src="js/8-8.js"></script>
CSSの書き方
.randomAnime {
visibility: hidden;
}
JSの書き方
var Obj = {
loop: false,
minDisplayTime: 2000,// アニメーションの間隔時間
initialDelay: 500, // アニメーション開始までの遅延時間
autoStart: true,
in: {
effect: 'fadeInUp',//animate.css の中にある採用したい動きのクラス名
delayScale: 1,// 遅延時間の指数
delay: 100,// 文字ごとの遅延時間
sync: false,// アニメーションをすべての文字に同時適用するかどうか
shuffle: true,// 文字表示がランダムな順に表示されるかどうか
},
out: {// 終了時のアニメーション設定をしたい場合はここに追記
}
}
var element
//初期設定
function RandomInit() {
element= $(".randomAnime");
$(element[0]).textillate(Obj);
}
function RandomAnimeControl() {
var elemPos = $(element[1]).offset().top - 50;
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll >= elemPos - windowHeight) {
$(element[1]).textillate(Obj);
}
}
// 画面をスクロールをしたら動かしたい場合の記述
$(window).scroll(function () {
RandomAnimeControl();/*アニメーション用の関数を呼ぶ*/
});//ここまで画面をスクロールをしたら動かしたい場合の記述
// 画面が読み込まれたらすぐに動かしたい場合の記述
$(window).on('load', function () {
RandomInit(); /*初期設定を読み込み*/
RandomAnimeControl();/*アニメーション用の関数を呼ぶ*/
});//ここまで画面が読み込まれたらすぐに動かしたい場合の記述