質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

861閲覧

アニメーションのタイミング設定のプログラムの解決方法

Yuto1800

総合スコア6

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/07/03 07:23

編集2020/07/03 15:12

アニメーションの開始のタイミングについての質問です
jquery最高の教科書という参考書の、回転のアニメーションを参考にして動きのある円チャートを作成しました。
単体では動くのですが、スクロールして可視範囲に入ったらアニメーションさせたく追加でプログラムを組みました。
すると動かなくなりました。
円チャート単体では動いているので、『可視範囲に入ったらアニメーションさせる』プログラムが間違っていると思うのですが調べても解決方法が分からず、知恵をお借りしたく質問しました。

理想としては、スクロールで可視範囲に入ったら、activateScene2 という関数を実行できるようにタイミングを設定するようなプログラムを組みたいです。

htmlのソースコード

<!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>Yuto's Room</title> <link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="style.css"> </head> <body>
<!-- ヘッダー --> <header> </header> <!-- プロフィール --> <div class="heading-txt"> <h2><i class="fas fa-user"></i> PROFILE</h2> </div> <!-- スキル --> <div class="skills heading-txt"> <h2><i class="fas fa-wrench"></i> SKILLS</h2> </div> <div class="container" id="scene-2-content"> <div class="skill-wrapper"> <div class="skill-item"> <!-- パイチャート --> <div class="charts"> <div class="chart" id="pi-html"> <div class="circle-mask-outer left"> <div class="circle-mask-inner"> <div class="circle-body"></div> </div> </div> <div class="circle-mask-outer right"> <div class="circle-mask-inner"> <div class="circle-body"></div> </div> </div> <div class="chart-content"> <p class="text"> <i class="fab fa-html5 fa-2x html-color"></i> <div class="percent"> <span class="percent-number">70</span> <span class="percent-symbol">%</span> </div> </p> </div> </div> </div> <!-- パイチャートここまで --> <div class="skill-txt"> <h3 class="html-color">HTML</h3> <p>SEOを考慮し、見やすく、後から編集しやすいコーディングをします。</p> </div> </div> <div class="skill-item"> <div class="charts"> <div class="chart" id="pi-css"> <div class="circle-mask-outer left"> <div class="circle-mask-inner"> <div class="circle-body"></div> </div> </div> <div class="circle-mask-outer right"> <div class="circle-mask-inner"> <div class="circle-body"></div> </div> </div> <div class="chart-content"> <p class="text"> <i class="fab fa-css3-alt fa-2x css-color"></i> <div class="percent"> <span class="percent-number">70</span> <span class="percent-symbol">%</span> </div> </p> </div> </div> </div> <div class="skill-txt"> <h3 class="css-color">CSS</h3> <p>後から編集しやすく、パーフェクトピクセルを意識して綺麗にコーディングをします</p> </div> </div> </div> </div> <!-- フッター --> <footer> <p><small>&copy; 2020 / Yuto Nagayoshi / All Rights Reserved.</small></p> </footer> <!-- JavaScriptファイル --> <script src="js/jquery-3.5.1.min.js"></script> <script src="js/script.js"></script>
</body> </html>

cssのコード

@charset "utf-8";

/* 共通 */
body {
width: 100vw;
color: #5fc1c7;
background-color: #000000;
font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

a {
text-decoration: none;
}

.container {
width: 90%;
margin: 100px auto;
max-width: 1200px;
}

.heading-txt {
background-color: #1d4763;
border-top: #e6e500 dotted 5px;
border-bottom: #e6e500 dotted 5px;
height: 1800px;
width: 100vw;
h2 {
text-align: center;
color: #e6e500;
line-height: 180px;
font-size: 45px;
font-weight: 500;
letter-spacing: 3px;
}
}

/* スキル */
.skill-item {
display: flex;
margin-top: 10px;
}

.skill-wrapper {
margin: 0 15%;
}

.skill-txt {
margin-left: 25px;
margin-top: 10px;
h3 {
font-size: 25px;
}
p {
margin-top: 10px;
letter-spacing: 1;
color: #ffffff;
}
}

/* フッター */
footer {
height: 150px;
background-color: #1d4763;
p {
text-align: center;
line-height: 150px;
}
}

/* パイチャート */
.chart {
position: relative;
width: 80px;
height: 80px;
}

.circle-mask-outer, .circle-mask-inner {
overflow: hidden;
position: absolute;
width: 40px;
height: 80px;
}

.circle-mask-outer.left {
left: 0;
}

.circle-mask-outer.right {
right: 0;
}

.circle-mask-inner {
-webkit-transform: rotate(0);
-ms-transform: rotate(0);
transform: rotate(0);
}

.circle-mask-outer.left {
.circle-mask-inner {
left: 100%;
-webkit-transform-origin: 0 50%;
-ms-transform-origin: 0 50%;
transform-origin: 0 50%;
}
}

.circle-mask-outer.right {
.circle-mask-inner {
right: 100%;
-webkit-transform-origin: 100% 50%;
-ms-transform-origin: 100% 50%;
transform-origin: 100% 50%;
}
}

.circle-body {
border-radius: 50%;
position: absolute;
width: 80px;
height: 80px;
}

.circle-mask-outer.left {
.circle-body {
right: 0;
}
}

.circle-mask-outer.right {
.circle-body {
left: 0;
}
}

.chart-content {
position: absolute;
top: 9px;
left: 8px;
width: 63px;
height: 63px;
background-color: #fff;
border-radius: 50%;
text-align: center;
.text {
display: flex;
flex-direction: column;
padding-top: 5px;
}
}

.percent {
span {
color: #000000;
}
}

#pi-html {
.circle-body {
background-color: #00a040;
}
}

.html-color {
color: #00a040;
}

#pi-css {
.circle-body {
background-color: #e6191c;
}
}

.css-color {
color: #e6191c;
}

jsのソースコード

$(function(){
/* 回転アニメーションのやつ */
function activateScene2() {
var $content = $('#scene-2-content'),
$charts = $content.find('.chart');

$charts.each(function() { var $chart = $(this), $circleLeft = $chart.find('.left .circle-mask-inner').css({transform: 'rotate(0)'}), $circleRight = $chart.find('.right .circle-mask-inner').css({transform: 'rotate(0)'}), $percentNumber = $chart.find('.percent-number'), percentData = $percentNumber.text(); $percentNumber.text(0); $({percent: 0}).delay(1000).animate({percent: percentData}, {duration: 1500, progress: function() { var now = this.percent, deg = now * 360 / 100, degRight = Math.min(Math.max(deg, 0), 180), degLeft = Math.min(Math.max(deg - 180, 0), 180); $circleRight.css({transform: 'rotate(' + degRight + 'deg)'}); $circleLeft.css({transform: 'rotate(' + degLeft +'deg)'}); $percentNumber.text(Math.floor(now)); }}); });

}

/* スクロールしたらアニメーションのやつ */
$(window).on('scroll', function() {
var $skillScroll = $('#skill-scroll');

$skillScroll.each(function() { var skillOffset = $(this).offset().top, scrollPos = $(window).scrollTop(); if(scrollPos > skillOffset) { $(this).activateScene2(); } });

});
});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/07/03 07:56

ソースを画像で貼るということは、回答者が手書きでソースを起こすということです (特に長文の場合)普通はそんなめんどくさいことまでして回答はしません。 そもそもなぜ画像で貼ろうと思ったかも不明・・・
yoorwm

2020/07/03 08:25

自分で試したのなら、そのソースを貼り付けるだけなはずですがね。 なぜ、画像にしましたか?
Yuto1800

2020/07/03 14:14

大変失礼いたしました。 こういった質問の場に慣れておらず、回答してくださる方のことを考えていない配慮がない質問になってしまいました。 今後はこういったことがないようにいたします。 ご指摘ありがとうございます。 質問を編集いたしますので、もう一度質問の場をくださると助かります。 もしまだ足りない場合はご指摘ください。 改めて大変失礼いたしました。
guest

回答1

0

自己解決

コードの書き方も間違えていたので、一度質問をなしにしてまた改めて
質問しなおします。
ご指摘くださった方有り難うございました

投稿2020/07/03 20:34

Yuto1800

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問