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

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

ただいまの
回答率

89.07%

divタグをアコーディオン形式で開きたい

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 87

RyoYo

score 9

前提・実現したいこと

div内の画像をクリックするとアコーディオンの別のdivタグがあらわれるようにしたいです。

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

画像をクリックしてもアコーディオンが開きません。

該当のソースコード

<body>
    <h1>New York Stories</h1>
    <a class="anchor" href="#">Scroll</a>
    <!--start portfolio details -->
    <div class="menu">
      <label class="label1" for="type1">
    <div class="portfolio-detail-0"></div>
  </label>
  <input type="checkbox" id="type1" class="accordion">
  <label class="slide" id="links1">
  <div class="view-box"><p>aaa</p></div>
  </label>
  </div>


    <div class="portfolio-detail-1"></div>
    <div class="portfolio-detail-2"></div>
* { 
    box-sizing: border-box;
  }
  body {
    font-family: Calluna, Arial, sans-serif;
    background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)), url(file:///Users/ryoyokoyama/pythonBox/portfolio/img/portfolio-main.jpg);
    background-repeat: no-repeat;
    background-attachment: fixed !important;
    background-size: cover !important;
    background-position: center top !important;
    padding: 1rem;
    padding-top: 45%;
    color: #fff;
    z-index: 1;
  }

  h1 {
    font-size: 4rem;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
    line-height: 1;
    position: absolute;
    top: 10px;
    font-weight: 100;
  }
  p {
    font-size: 1.3rem;
    text-align: left;
    line-height: 1.6;
    margin-left: 8rem;
    margin-right: 8rem;
    color: #000;
  }
  h2 {
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 0;
  }
  span {
    display: block;
    margin: 0;
    text-align: center;
    font-size: 3rem;
  } 
  a {

        display: inline-block;
        position: absolute;
        right: 50vw;
        bottom: 0;
        z-index: 2;
        padding: 10px 10px 110px;
        overflow: hidden;
        color: #fff;
        font-size: 14px;
        font-family: 'Josefin Sans', sans-serif;
        line-height: 1;
        letter-spacing: .2em;
        text-transform: uppercase;
        text-shadow: 0 0 7px rgba(0, 0, 0, 1) !important;
        text-decoration: none;
        writing-mode: vertical-lr;

      &::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        width: 1px;
        height: 100px;
        background: #fff;
      }
      &::before {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        width: 1px;
        height: 100px;
        background: rgba(255, 255, 255, .4);
      }
      &::after {
        animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
      }
      @keyframes sdl {
        0% {
          transform: scale(1, 0);
          transform-origin: 0 0;
        }
        50% {
          transform: scale(1, 1);
          transform-origin: 0 0;
        }
        50.1% {
          transform: scale(1, 1);
          transform-origin: 0 100%;
        }
        100% {
          transform: scale(1, 0);
          transform-origin: 0 100%;
        }
      }
  }
  div {
    &.portfolio-detail-0 {
        background-image:
        url(file:///Users/ryoyokoyama/pythonBox/portfolio/img/portfolio-detail0.jpg);
        height: 50vh;
        width: 70vw;
        background-size: cover;
        position: relative;
        top: 300px;
        right: -25vw;
        z-index: 2;
    }
    &.portfolio-detail-1 {
        background-color: burlywood;
        height: 50vh;
        width: 70vw;
        background-size: cover;
        position: relative;
        top: 550px;
        right: -25vw;
        z-index: 2;
    }
    &.portfolio-detail-2 {
        background-color: burlywood;
        height: 50vh;
        width: 70vw;
        background-size: cover;
        position: relative;
        top: 800px;
        right: -25vw;
        z-index: 2;
    }
    &.btn {
    position: relative;
    top: 1500px;
    z-index: 3;
        a {
        &.btn--orange {
            color: #fff;
            background-color: #eb6100;
          }

        &.btn--orange:hover {
            color: #fff;
            background: #f56500;
          }

        &.btn-c {
            font-size: 1.8rem;
            position: relative;
            padding: 1.5rem 2rem 1.5rem 2rem;
            border-radius: 100vh;
          }

        &.btn-c i.fa {
            margin-right: 1rem;
          }
    }
    }

    div {
        label {
            &.label1 {
                display: block;
                margin: 0 0 4px 0;
                padding : 15px;
                line-height: 1;
                color :#fff;
                background : green;
                cursor :pointer;
            }
            div {

            }
        }
        input {
            display: none;
            &#type1:checked ~ #links1 div {
                height: 54px;
                opacity: 1;
            }
        }
        label {
            &.slide {
                margin: 0;
                padding: 0;
                background :#f4f4f4;
                list-style: none;
            }
            div {
                &.view-box {
                    height: 0;
                    overflow: hidden;
                    -webkit-transition: all 0.5s;
                    -moz-transition: all 0.5s;
                    -ms-transition: all 0.5s;
                    -o-transition: all 0.5s;
                    transition: all 0.5s;
                }
            }
        }
    }
  }
var nystories = document.querySelector(".anchor").offsetTop;
window.onscroll = function gradation() {
  if (window.pageYOffset > 0) {
 var opac = (window.pageYOffset / nystories);
    console.log(opac);
  document.body.style.background = "linear-gradient(rgba(51,102,102," + opac + "), rgba(0,51,51," + opac + ")), url(file:///Users/ryoyokoyama/pythonBox/portfolio/img/portfolio-main.jpg) no-repeat";
  }
}

試したこと

&#type1:checked ~ #links1 div {
height: 54px;
opacity: 1;

に問題があることは分かったのですが、対処法が分かりません。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • RyoYo

    2020/08/02 10:50

    修正依頼ありがとうございます。

    画像の部分を追加しました。

    キャンセル

  • hatena19

    2020/08/02 12:42

    提示のコードで確認してみましたが、画像のクリックでもアコーディオンは開きますね。(画像は手持ちのものを適当に使いました。)
    症状を再現できるコードを提示してもらわないと原因の特定は難しいかと。

    キャンセル

  • RyoYo

    2020/08/04 02:55

    確認ありがとうございます。
    以前のコードに加えて、関係のありそうな部分を貼りました。
    よろしくお願いします。

    キャンセル

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

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

  • ただいまの回答率 89.07%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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