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

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

新規登録して質問してみよう
ただいま回答率
87.20%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

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

解決済

jQuery アコーディオン 一つ目だけ開いている状態を作りたい

gaki-log
gaki-log

総合スコア23

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

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

3回答

0評価

0クリップ

665閲覧

投稿2022/01/23 07:51

アコーディオンメニューで、一つ目だけ開いている状態で他は押したら開く、押したら閉じる(一つ目も同じ)、が作りたいのですがうまくいきません。お分かり頂ける方ご教示お願いします。

ps. 一つ目が開いてない状態であれば出来ました。

html

<body> <section class="accordion"> <div class="accordion-container"> <h4 class="accordion-title jsAccordionTitle">クリック</h4> <div class="accordion-content">内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</div> <h4 class="accordion-title jsAccordionTitle">クリック</h4> <div class="accordion-content">内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</div> <h4 class="accordion-title jsAccordionTitle">クリック</h4> <div class="accordion-content">内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</div> </div><!-- accordion__container --> </section><!-- /.accordion --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="main.js"></script> </body>

css
@charset "UTF-8";
/resetCSS/
html, body, h1, h2, h3, h4 {
margin: 0;
padding: 0;
border: 0;
font-weight: normal;
font-size: 100%;
vertical-align: baseline;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

/* CSS for CodePen */
.accordion {
margin-top: 10px;
}

.accordion-container {
width: 500px;
margin: 0 auto;
}

.accordion-title {
background-color: #fff;
border-top: 1px solid #010327;
color: #010327;
font-size: 18px;
padding: 12px 12px 12px 32px;
position: relative;
cursor: pointer;
user-select: none;
}

.accordion-title:last-of-type {
border-bottom: 1px solid #010327;
}

.accordion-title::before, .accordion-title::after {
content: '';
display: block;
background-color: #010327;
position: absolute;
top: 50%;
width: 15px;
height: 2px;
right: 25px;
}

.accordion-title::after {
transform: rotate(90deg);
transition-duration: .3s;
}

.accordion-title:hover,
.accordion-title:active,
.accordion-title.is-active {
text-decoration: underline;
}

.accordion-title.is-active::before {
opacity: 0;
}

.accordion-title.is-active::after {
transform: rotate(0);
}

.accordion-content {
border-left: 1px solid transparent;
border-right: 1px solid transparent;
padding: 0 18px;
line-height: 0;
height: 0;
overflow: hidden;
opacity: 0;
transition-duration: .3s;
}

.accordion-content.is-open {
background-color: #e7e7e7;
padding: 12px 18px;
margin: 12px 0;
line-height: normal;
/* numberに書き換える*/
height: auto;
opacity: 1;
}

jQuery
$(function () {
$('.jsAccordionTitle').on('click', function () {
//nextは次の要素を取得する、今回はクリック要素の次の要素にis-showクラスをつけている
$(this).next().toggleClass('is-open');
//クリックした要素自体にもclass付与
$(this).toggleClass('is-active');
});
});

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

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