CSS - Случайный плиточный фон - PullRequest
1 голос
/ 23 апреля 2020

У меня есть 5 плиток с одинаковой шириной / высотой, я хочу знать, есть ли способ установить их в качестве фона случайным образом.

position: relative;
background-image: url(assets/images/bg_tile1.png), url(assets/images/bg_tile2.png), url(assets/images/bg_tile3.png), url(assets/images/bg_tile4.png), url(assets/images/bg_tile5.png);
background-size: auto;
background-repeat: repeat;

Это то, что у меня до сих пор, как я мог повторить их случайно? Например, если они находятся в сетке (произвольно):

1 4 2 1

2 3 4 1

3 1 5 5

1 Ответ

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

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

Вот пример, построенный шаблон 3x3:

svg {
 position:fixed;
 top:0;
 left:0;
 right:0;
 bottom:0;
 width:100%;
 height:100%;
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <pattern id="bgimg" x="0" y="0" width="300" height="300"  patternUnits="userSpaceOnUse">
      <image xlink:href="https://i.picsum.photos/id/1055/100/100.jpg" x="0" y="0" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1074/100/100.jpg" x="0" y="100" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1080/100/100.jpg" x="0" y="200" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1074/100/100.jpg" x="100" y="0" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1065/100/100.jpg" x="100" y="100" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1039/100/100.jpg" x="100" y="200" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/117/100/100.jpg" x="200" y="0" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1024/100/100.jpg" x="200" y="100" height="100" width="100" />
      <image xlink:href="https://i.picsum.photos/id/1025/100/100.jpg" x="200" y="200" height="100" width="100" />
    </pattern>
  </defs>
  <rect x="0" y="0" width="10000" height="10000" fill="url(#bgimg)" />
</svg>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...