не выводятся картинки из массива js
Недавно наткнулся на кейс в ютубе вот ссылка:
https://www.youtube.com/watch?v=9jyL2jREbZs&t=1076s
переписал все в точности, но почему то картинки из массива не отображаются на сайте, может я не правильно указал пути к ним, попробовал и так и сяк указать, не вышло, помогите пожалуйста! вот код который я переписал
https://codepen.io/ytpnqzjr-the-solid/pen/bGJOLJN
const cells = 31
const items = [
{
name: 'iPhone', img: 'case/iphone.jpg', chance: 10
},
{
name: 'Headphones', img: 'case/headphone.jpg', chance: 10
},
{
name: 'Microphone', img: 'case/microphone.jpg', chance: 10
}
]
function getItem() {
let item;
while (!item) {
const chance = Math.floor(Math.random() * 100)
items.forEach(elm => {
if (chance < elm.chance && !item) item = elm
});
}
return item
}
function generateItems() {
document.querySelector('.list').remove()
document.querySelector('.scope').innerHTML = `
<ul class="list"></ul>
`
for (let i = 0; i < cells; i++) {
const item = getItem()
const li = document.createElement('li')
li.setAttribute('data-item', JSON.stringify(item))
li.classList.add('list__item')
li.innerHTML = `
<img src="${item.img}" alt="" />
`
list.append(li)
}
}
generateItems()
let isStarted = false
function start() {
if (isStarted) return
else isStarted = true
generateItems()
const list = document.querySelector('.list')
setTimeout(() => {
list.style.left = '50%'
list.style.transform = 'translate3d(-50%, 0, 0)'
}, 0)
const item = list.querySelectorAll('li')[15]
list.addEventListener('transitionend', () => {
isStarted = false
item.classList.add('active')
const data = JSON.parse(item.getAttribute('data-item'))
console.log(list.querySelectorAll('li').length)
})
}
* {
margin: 0;
padding: 0;
font-family: sans-serif;
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #13161a;
color: white;
}
.app {
position: relative;
width: 650px;
background-color: #1b1f24;
border-radius: 10px;
.pointer {
position: absolute;
z-index: 1;
left: 50%;
transform: translate3d(-50%, -50px, 0);
height: 50px;
filter: drop-shadow(0 0 20px rgba(243, 181, 181, 0.3));
}
.scope {
overflow: hidden;
.list {
position: relative;
display: inline flex;
list-style: none;
left: 0;
transform: translate3d(0, 0, 0);
list-style: none;
transition: 5s cubic-bezier(.21, .53, .29, .99);
&__item {
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
width: 200px;
height: calc(200px * .8);
opacity: .5;
transition: .3s ease;
&:nth-child(2n) {
background-color: rgba(0, 0, 0, .1);
}
&.active {
opacity: 1;
img {
transform: scale(1.05);
}
}
img {
width: 80%;
height: 80%;
object-fit: contain;
transition: .3s ease;
}
}
}
}
.start {
position: absolute;
top: 100%;
left: 50%;
transform: translate3d(-50%, 20px, 0);
padding: 8px 25px;
border: none;
border-radius: 5px;
outline: none;
background-color: #0c75ec;
color: inherit;
font-size: 16px;
font-weight: 500;
transition: opacity .2s ease;
cursor: pointer;
}
&:hover {
opacity: .8;
}
}
<div class="app">
<img class="pointer" src="case/pointer.png" alt="">
<div class="scope">
<ul class="list">
<li class="list__items">
</li>
</ul>
</div>
<button onclick="start()" class="start">Крутить</button>
</div>