Загрузка...

How to fix it?

Thread in Frontend created by Synq Aug 28, 2025. 371 view

  1. Synq
    Synq Topic starter Aug 28, 2025 15 Aug 27, 2025
    В чем проблема: При нажатии кнопки "Показать QR", Верно показывается QR для блока на который нажимал, при этом, 2 остальных блока выезжают вместе с тем что был нужен.
    Как нужно: Нажал на кнопку "Показать QR" на lolz - выезжает блок и показывается QR только у этого блока.
    [IMG]
    HTML
    <div id="links" class="tab">
    <div class="cards">
    <div class="card">
    <h3>telegram</h3>
    <p>@ammcngg</p>
    <button onclick="window.open('https://t.me/ammcngg')">Перейти</button>
    <button onclick="toggleQR(this)">Показать QR</button>
    <div class="qr-block">
    <img src="qrcodes/telegram.png" alt="Telegram QR">
    <button class="close-btn" onclick="toggleQR(this.parentElement)">Свернуть</button>
    </div>
    </div>

    <div class="card">
    <h3>lolz</h3>
    <p>profile</p>
    <button onclick="window.open('https://lolz.live/members/9540954/')">Перейти</button>
    <button onclick="toggleQR(this)">Показать QR</button>
    <div class="qr-block">
    <img src="qrcodes/lolz.png" alt="LOLZ QR">
    <button class="close-btn" onclick="toggleQR(this.parentElement)">Свернуть</button>
    </div>
    </div>

    <div class="card">
    <h3>github</h3>
    <p>verplyofficial</p>
    <button onclick="window.open('https://github.com/verplyofficial')">Перейти</button>
    <button onclick="toggleQR(this)">Показать QR</button>
    <div class="qr-block">
    <img src="qrcodes/github.png" alt="GitHub QR">
    <button class="close-btn" onclick="toggleQR(this.parentElement)">Свернуть</button>
    </div>
    </div>
    </div>
    </div>
    CSS
    .qr-block {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease, padding 0.5s ease;
    padding: 0 10px;
    text-align: center;
    border: 1px solid #555;
    margin-top: 10px;
    background: #111;
    }

    .qr-block.show {
    max-height: 500px;
    padding: 10px;
    }

    .qr-block img {
    width: 120px;
    height: 120px;
    display: block;
    margin: 0 auto 10px auto;
    }

    .qr-block .close-btn {
    margin-top: 5px;
    padding: 5px 10px;
    cursor: pointer;
    background: none;
    border: 1px solid #fff;
    color: #fff;
    }
    JS
    function toggleQR(buttonOrBlock) {
    let qr;
    if (buttonOrBlock.tagName === 'BUTTON') {
    qr = buttonOrBlock.nextElementSibling;
    } else {
    qr = buttonOrBlock;
    }
    qr.classList.toggle('show');
    }
     
  2. Synq
    Synq Topic starter Aug 28, 2025 15 Aug 27, 2025
    бля, разобрался
     
  3. Посетитель
    у тебя переключение класса текущего блока ,ты остальные не затрагиваешь.
    JS-
    Code
    function toggleQR(buttonOrBlock) {
    const current = buttonOrBlock.tagName === 'BUTTON'
    ? buttonOrBlock.nextElementSibling
    : buttonOrBlock;

    document.querySelectorAll('.qr-block.show').forEach(el => {
    if (el !== current) el.classList.remove('show');
    });

    current.classList.toggle('show');
    }
    и там CSS сам подправишь
     
    1. Посетитель
      avatarSynq, да не за что) поправь CSS
      в частности паддинг и оба бордера
      в qr-block и .qr-block. show

      в .qr-block. show
      будет у тебя border: 1px solid #555;
      а в .qr-block
      будет padding: 0; и border: 0;

      вроде как
Loading...