Сделайте некоторые объекты невидимыми при нажатии, только используя HTML и CSS, без JS или jQuery

#html #css

#HTML #css

Вопрос:

Итак, мы группа из трех человек, у которых есть наше первое задание. Мы должны создать простую игру или просто веб-сайт с некоторыми базовыми HTML и CSS (без JS), желательно с анимацией. Мы решили создать игру, в которой ваш курсор — Гомер Симпсон, и он пытается съесть пончики на кухне.

Основой для этого является фоновое изображение кухонной комнаты, несколько изображений пончиков и изображение для курсора мыши. Пончики представляют собой несколько PNG с тем же размером экрана, что и фоновое изображение.

До сих пор нам удалось создать рабочий курсор, фоновое изображение и размещение пончиков. Однако наша проблема заключается в том, что мы не можем понять, как сделать пончики невидимыми при нажатии.

Ниже приведен код из наших документов HTML и CSS.

 body {
    height: 100vh;
    cursor: url('../images/homer2.png'), auto;
}

body:active {
    height: 100vh;
    cursor: url('../images/homer-eat2.png'), auto;
}
.kitchen {
    position: relative;
    top: 0;
    left: 0;
}
.donut1{
    position: absolute;
    top: 0;
    left: 0;
    visibility: visible;
}
.donut1:active{
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
}
.donut2{
    position: absolute;
    top: 0;
    left: 0;
}
.donut3{
    position: absolute;
    top: 0;
    left: 0;
}
.donut4{
    position: absolute;
    top: 0;
    left: 0;
}
.donut5{
    position: absolute;
    top: 0;
    left: 0;
}
.images {
    position: relative; 
    left: 0; 
    top: 0;
}  
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Eat the donuts!</title>
    <link rel="stylesheet" href="../css/spillside.css">
</head>
<body>
    <div images>
        <img src="../images/background-page2-new.png" class="kitchen" draggable="false" usemap="#img-map">>
        <img src="../images/donut-1.png" class="donut1" draggable="false">
        <img src="../images/donut-2.png" class="donut2" draggable="false"> 
        <img src="../images/donut-3.png" class="donut3" draggable="false"> 
        <img src="../images/donut-4.png" class="donut4" draggable="false">
        <img src="../images/donut-5.png" class="donut5" draggable="false">     
    </div>       
</body>
</html>  

До сих пор мы только пытались заставить donut1 исчезнуть, поскольку мы сочли немного бессмысленным копировать вставлять этот код до того, как он действительно заработает. Donut1 — это тот, который за столом.

Ниже приведены некоторые изображения для справки: https://i.imgur.com/aWFRewj.png
https://i.imgur.com/mDQYi1u.png

Комментарии:

1. использование :active или:focus приведет к повторному отображению изображений, вы можете легко сделать это с помощью переключателей help. простой и понятный

Ответ №1:

вы можете добиться желаемого результата с помощью переключателей. это хороший и чистый трюк, чтобы скрыть что-то только с помощью HMTL, CSS. (без JS) Здесь я настроил для вас небольшой пример.

Следуйте этому в своей игре, поместите изображение пончика в ярлык и скройте его, когда соответствующий ввод проверен с помощью CSS, как я, попробуйте запустить этот фрагмент, а затем нажмите на текст d1, d2.

Примечание: если вы хотите повторно отобразить свое изображение при повторном нажатии, используйте Checkbox вместо radio .

 input {display: none;}
input:checked   label {
  display: none;
}  
 <section>
<div>
  <input type="radio" id="donut1">
  <label for="donut1">Donut 1</label> 
</div>
<div>
  <input type="radio" id="donut2">
  <label for="donut2">Donut 2</label> 
</div>
<div>
  <input type="radio" id="donut3">
  <label for="donut3">Donut 3</label> 
</div>
<div>
  <input type="radio" id="donut4">
  <label for="donut4">Donut 4</label> 
</div>
</section>  

Комментарии:

1. Это работает. Единственная проблема сейчас в том, что вам нужно нажать кнопку сбоку страницы, чтобы скрыть пончик, я бы хотел, чтобы эта кнопка была невидимой и помещалась на пончик. рис.: i.imgur.com/TGIEZZv.png код, который я использовал: pastebin.com/RjQwjwk7

2. Вам не нужно оставлять их на своей странице, в соответствии с вашим кодом, который вы используете в изображениях пончиков, поэтому просто сделайте их положение абсолютным и разместите их на разных позициях, я могу помочь вам больше, если вы создадите codepen или fiddle с тем же примером.

3. Я попытался сделать их абсолютными сейчас, но, похоже, они не исчезают при нажатии (эти кнопки также исчезли). Впервые попытался создать скрипку: jsfiddle.net/b43cxurw/#amp;togetherjs=VlvaaADBfL Также были загружены некоторые рабочие файлы на диск: drive.google.com/drive/folders /…

4. Я обновил вашу скрипку в соответствии с вашими потребностями, наслаждайтесь кодированием, jsfiddle.net/mgn39rye