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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

Q&A

解決済

1回答

765閲覧

jQuery:ページトップリンク -リンクボタンをクリックしたら形状が変化-

yamahaggy

総合スコア9

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

0グッド

0クリップ

投稿2022/05/31 00:22

実現したいこと↓
サイトのページトップリンクのボタンを
①ページ上部では「Scroll」の表示
②スクロールダウンしたら画像1を表示(ページトップリンクになります)
③ページトップリンクをクリックすると画像2に変化しページトップへスムーススクロール
④ページトップへ戻ると再度「Scroll」表示

現状↓
①、②、④は実現済みですが、③の画像の切り替えが実現できません。
参考サイトhttps://coco-factory.jp/ugokuweb/move01/8-1-8/

試したこと↓
html:Scrollとページトップリンクを用意。
CSS:デフォルト表示のページトップリンクと、クリック時のクラス付与したページトップリンクを用意。(画像は背景で設定しました。)
jQuery:スクロールダウン・ページトップとローカルナビのスムーススクロール、ページトップリンクをクリックしたらクラスを付与する設定を用意。

以下それぞれの該当部ソースです。

html

1 <p id="scroll_down" class="flexbox">scroll<img alt="scrolldown" src ="img/scroll.png"></p> 2 <p id="pagetop"><a href="#"></a></p> 3 4 <script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> 5 <script src="script.js"></script>

CSS

1 #pagetop a { 2 /*aタグの形状*/ 3 display: block; 4 width: 100px; 5 height: 100px; 6 /*背景画像の指定*/ 7 background: url("img/pagetop.png") no-repeat center; 8 background-size: contain; 9 } 10 11 #pagetop.floatAnime a { 12 width: 100px; 13 height: 150px; 14 /*背景画像の指定*/ 15 background: url("img/pagetop-2.png") no-repeat center; 16 background-size: contain; 17 /*アニメーションの指定*/ 18 animation: floatAnime 2s linear infinite; 19 opacity: 0; 20 } 21 22 @keyframes floatAnime { 23 0% { transform: translateX(0); opacity: 0; } 24 25% { transform: translateX(-6px);opacity: 1; } 25 50% { transform: translateX(0) } 26 100% { transform: translateX(6px);opacity: 1; } 27 }

jQuery

1// スクロールダウン・ページトップ 2 3$(function() { 4 var pagetop = $('#scroll_down'); 5 6 $(window).on('scroll', function () { 7 if ($(this).scrollTop() > 500) { 8 pagetop.fadeOut(500); 9 } else { 10 pagetop.fadeIn(); 11 } 12 }); 13}); 14 15 16$(function() { 17 var pagetop = $('#pagetop'); 18 pagetop.hide(); 19 20 $(window).on('scroll', function () { 21 if ($(this).scrollTop() > 1000) { 22 pagetop.fadeIn(1000); 23 } else { 24 pagetop.fadeOut(); 25 } 26 }); 27 28 29 pagetop.click(function () { 30 $('body, html').animate({ scrollTop: 0 } 31 , 600); 32 return false; 33 }); 34}); 35 36// ローカルナビのスムーススクロール 37 38$(function(){ 39 $('a[href^="#"]').click(function(){ 40 var speed = 700; 41 var href= $(this).attr("href"); 42 var target = $(href == "#" || href == "" ? 'html' : href); 43 var position = target.offset().top; 44 $("html, body").animate({scrollTop:position}, speed, "swing"); 45 return false; 46 }); 47}); 48 49// #pagetopをクリックした際の設定 50$('#pagetop').click(function () { 51 var scroll = $(window).scrollTop(); 52 if(scroll > 0){ 53 $(this).addClass('floatAnime'); 54 $('body,html').animate({ 55 scrollTop: 0 56 }, 2000,function(){ 57 $('#pagetop').removeClass('floatAnime'); 58 }); 59 } 60 return false; 61});

説明に不足あればご指摘ください。
わかりにくいかと思いますが、どうぞよろしくお願いいたします。

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

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

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

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

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

Lhankor_Mhy

2022/05/31 03:08

補足願います。 1. 「サイトのページトップリンク」とは #pagetop のことですか? 2. 1の通りであるならば、「(ページトップリンクになります)」とはどういう動作ですか? 何かが #pagetop になる、という解釈で合っていますか? それは、ページトップリンクになる前はなんであったものですか? 3. 1の通りであるならば、「①ページ上部では「Scroll」の表示」「④ページトップへ戻ると再度「Scroll」表示」とは、 #pagetop のテキストを変える、という意味で合っていますか? 4. 「③ページトップリンクをクリックすると画像2に変化しページトップへスムーススクロール」とのことですが、そちらの環境では #pagetop はスクロールに追従しているのですか? ご提示のコードではそのようになっていないようです。
Lhankor_Mhy

2022/06/01 01:20

すみません、もうひとつお願いします。 5. 画像2とは pagetop-2.png のことでいいですか?
yamahaggy

2022/06/06 06:40

ご質問ありがとうございます。 それぞれ補足いたします。 1. そのとおりです。 2.ページトップリンクになる前には「Scroll」という文字が表示されています。 3.そのとおりです。正確には①と④の状態ではテキスト、他の状態では画像です。 4.追従しております。 5,そのとおりです。
Lhankor_Mhy

2022/06/06 06:57

ご提示のコードを試してみましたが、スクロールに追従しませんでしたので、コードが不足しているのだろうと思います。
guest

回答1

0

ベストアンサー

補足依頼にご応答いただけなかったので想像で回答します。

js

1 pagetop.click(function () { 2 $('body, html').animate({ scrollTop: 0 } 3 , 600); 4 // return false; ←これを消す 5 }); 6 }); 7 8 // ローカルナビのスムーススクロール 9 10 $(function () { 11 $('a[href^="#"]').click(function () { 12 var speed = 700; 13 var href = $(this).attr("href"); 14 var target = $(href == "#" || href == "" ? 'html' : href); 15 var position = target.offset().top; 16 $("html, body").animate({ scrollTop: position }, speed, "swing"); 17 // return false; ←これを消す 18 }); 19 }); 20

投稿2022/06/01 08:26

Lhankor_Mhy

総合スコア36074

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

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

yamahaggy

2022/06/06 06:44 編集

ご回答ありがとうございます。 補足が遅くなり申し訳ありませんでした。 試してみましたが、やはり画像は切り替わりません…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問