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

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

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

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

HTML5

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

JavaScript

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

jQuery

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

Q&A

解決済

1回答

577閲覧

もっと見るのボタンが反応せずもっと見れません

yummy_2

総合スコア2

CSS3

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

HTML5

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

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2022/10/02 04:38

編集2022/10/02 04:39

前提

jQueryでもっと見るのボタンを実装しようとしています。
もっと見るのボタンが押しても反応しないです。

実現したいこと

もっと見るボタンを押して4つ→8つにリストを増やしたいです。

発生している問題・エラーメッセージ

  • more のボタンを押しても反応しません

該当のソースコード

HTML

1<section id="works" class="section-works"> 2 <h2># WORKS</h2> 3 <div class="works-list"> 4 <ul class="list"> 5 <li class="list-item"> 6 <img src="assets/image/bike_site_image.png" alt="自転車紹介サイト"> 7 <p>bikeプロフィール(架空サイト)</p> 8 </li> 9 <li class="list-item"> 10 <img src="assets/image/furniture_design_site.png" alt="f家具サイト"> 11 <p>家具のオンラインショッピング(架空サイト)</p> 12 </li> 13 <li class="list-item"> 14 <img src="assets/image/my_works_site.png" alt="仕事のサイト"> 15 <p>My Works(架空サイト)</p> 16 </li> 17 <li class="list-item"> 18 <img src="assets/image/travel_blog_site.png" alt="トラベルサイト"> 19 <p>トラベルサイト(架空サイト)</p> 20 </li> 21 <li class="list-item"> 22 <img src="assets/image/site_list04.png" alt="DHWスポーツサイト"> 23 <p>家具のオンラインショッピング(架空サイト)</p> 24 </li> 25 <li class="list-item"> 26 <img src="assets/image/site_list02.png" alt="プロフィールサイト"> 27 <p>プロフィールサイト</p> 28 </li> 29 <li class="list-item"> 30 <img src="assets/image/site_list03.png" alt="スグ食べ"> 31 <p>スグ食べ(架空サイト)</p> 32 </li> 33 <li class="list-item"> 34 <img src="assets/image/site_list01.png" alt="美容室A.R.E.(プライベートワーク)"> 35 <p>美容室A.R.E.(プライベートワーク)</p> 36 </li> 37 </ul> 38 <div class="list-btn"> 39 <button>+ More</button> 40 </div> 41 </div> 42 43 </section>

CSS

1.list-item{ 2 opacity: 1; 3} 4.list-item.is-hidden { 5 opacity: 0; 6 height: 0; 7 margin: 0; 8} 9.list-btn { 10 margin-top: 20px; 11} 12.list-btn.is-btn-hidden{ 13 display:none; 14} 15.list-btn button { 16 background-color: #e7c9e0; 17 color:#2b2a2b; 18 height: 50px; 19 width: 180px; 20 border-radius: 50px; 21 border: none; 22 cursor: pointer; 23 outline: none; 24 padding: 0; 25 line-height: 32px; 26}

js

1var moreNum = 4; 2 3$('.list-item:nth-child(n + ' + (moreNum + 1) + ')').addClass('is-hidden'); 4 5$('.list-btn').on('click', function() { 6 $('.list-item.is-hidden').slice(0, moreNum).removeClass('is-hidden'); 7 if ($('.list-item.is-hidden').length == 0) { 8 $('.list-btn').fadeOut(); 9 } 10}); 11 12$(function() { 13 var list = $(".list li").length; 14 if (list < moreNum) { 15 $('.list-btn').addClass('is-btn-hidden'); 16 } 17});

補足情報(FW/ツールのバージョンなど)

HTML5/CSS3
https://web.runland.co.jp/blog_cate2/post-4137
このサイトの二個目の動きを入れようと思いました。

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

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

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

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

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

Cocode

2022/10/02 06:36

試しに、CSSの .list-btn button{...} のブロックをごっそり削除してデフォルトの見た目にすると、ちゃんと動作するんですよね。 .list-btn button{...} を復活させると、カーソルが指の形に変化するポイントって、すっごい限られてて…ボタン上なのに、押せるところと押せないところがあります。 指になったところでクリックしたらちゃんと動くけど、矢印のままのときは動きません。 CSSが何か悪さしているようで、調査中です。
guest

回答1

0

ベストアンサー

.list-item.is-hiddenの中の子要素か親要素からはみ出して.list-btnを覆っているので、クリックできない状態になってます。
対策はいろいろありますが、overflow: hidden;を追加してはみ出し部分を切り取ればいいでしょう。

css

1.list-item.is-hidden { 2 opacity: 0; 3 height: 0; 4 margin: 0; 5 overflow: hidden; /* 追加 */ 6}

位置が前の要素が後の要素の前面にくる原因は、opacity: 0 を設定していることです。これははまりやすいので要注意ですね。

opacity - CSS: カスケーディングスタイルシート | MDN
このプロパティを 1 以外の値で用いると、その要素は新しい重ね合わせコンテキストを作ります。

投稿2022/10/02 06:37

hatena19

総合スコア33699

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

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

yummy_2

2022/10/02 07:04

ボタンちゃんと反応しました!! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問