Попытка сделать фоновое изображение кнопкой, которая отображает количество нажатий на все, кто посещает сайт. - PullRequest
0 голосов
/ 13 апреля 2020
html, body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #background {
            width: 100%;
            height: 100%;
            max-height: 100%;;
            background-size:100% 100%;
            background-repeat: no-repeat;
        }

body{
  margin: 0;
  padding: 0;
  background: #fffaee;
}
.eyes{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  text-align: center;
}
.eye{
  width: 50px;
  height: 50px;
  background: #f7f4eb;
  display: inline-block;
  margin: 40px;
  border-radius: 50%;
  position: relative;
  overflow: hidden;
}

.ball{
  width: 5px;
  height: 5px;
  background: #000;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  border: 5px solid #333;
}


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="keywords" content="prank, pidgeons, old man, interactive, art, teague, 
    portfolio">
    <meta name="description" content="Frank loves to feed pidgeons on his bench this is where he stays">
        <title>Frank</title>
        <link rel="shortcut icon" type="image/jpg" href="images/favicon.png">
        <link rel="stylesheet" href="css/normalize.css">
        <link rel="stylesheet" href="css/style.css">
        <link rel="stylesheet" href="css/anim.css">

</head>

<body>
  <div class="eyes">
    <div class="eye">
      <div class="ball"></div>
    </div>

    <div class="eye">
      <div class="ball"></div>
    </div>
  </div>

  <img src="images/bird.png" id="background">

<script>
  var balls = document.getElementsByClassName("ball");
  document.onmousemove = function(){
    var x = event.clientX * 100 / window.innerWidth + "%";
    var y = event.clientY * 100 / window.innerHeight + "%";
    //event.clientX => get the horizontal coordinate of the mouse
    //event.clientY => get the Vertical coordinate of the mouse
    //window.innerWidth => get the browser width
    //window.innerHeight => get the browser height

    for(var i=0;i<2;i++){
      balls[i].style.left = x;
      balls[i].style.top = y;
      balls[i].style.transform = "translate(-"+x+",-"+y+")";
    }
  }
</script>
</body>
</html>[bird][1]


  [1]: https://i.stack.imgur.com/NmbdG.png

У меня есть изображение птицы, поскольку на фоне моего идентификатора сайта хотелось бы сделать его кнопкой, которая бы показывала, сколько раз ее кликнули все посетители сайта, возможно ли это? Если да, то как мне go включить его в свой сайт, я несколько раз пытался добавить кнопку на фоновое фото, но безуспешно, так как он продолжал изменять размер моего изображения странными способами

1 Ответ

0 голосов
/ 13 апреля 2020

Здесь есть несколько проблем: 1. Разместите фоновое изображение. 2. Сделайте его кликабельным и увеличьте счетчик. 3. Сохраните и восстановите счетчик для всех посетителей.


  1. Код <img src=""> разместит изображение, используя HTML. Это чаще всего используется для размещения меньшего изображения в текстовом блоке. Вместо этого, похоже, вы хотите, чтобы весь фон вашего сайта был таким изображением. Попробуйте вместо этого:
body{
  background-color: #fffaee;
  background-image: url("images/bird.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

Вы также можете сделать все это в одну строку:

body{
  background: #ffaee url("images/bird.png") no-repeat 100% 100%;
}

Если вы хотите, чтобы он был кликабельным, используйте вместо него теги <button></button>. Вы будете использовать javascript, чтобы обнаружить щелчок и увеличить счетчик. Для этого используем ваниль javascript:

HTML:

...
<body>
  <button id="birdcounter" onclick="increment()">
    <span id="counter" value=0>
    </span>
  </button>
</body>

CSS

#birdcounter{
  width: 200px;
  height: 200px;
  background-color: #fffaee;
  background-image: url("images/bird.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

Javascript

function increment(){
  var counterElement = document.getElementById("counter");
  var oldValue = counterElement.value;
  var newValue = oldValue + 1;
  counterElement.value = newValue;
  counterElement.innerHTML = newValue;
}

Примечание. Этот пример является подробным, чтобы понять, что происходит. Это может быть упрощено несколькими способами.


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

Вариантов много, но все они выходят за рамки этого ответа. Чтобы узнать это, вы, вероятно, захотите провести исследование AJAX (метод javascript) и, возможно, MySQL. Вам может быть полезен препроцессор HTML, такой как PHP. Вы также можете попробовать Javascript фреймворк, такой как Vue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...