x, y
, которые являются координатами, дальше вешается слушатель на мышку который следит когда мышка двигается. А третий этап написать выражение которые вычислит новое значение координат картинке в зависимости от положения мышы. Вот пример type TArray<T> = T extends { [key: string]: string } ? {[key: string]: string} : {[key: string]: string}[];
<p></p>
. Но это не совсем удобно, потому что придут отступы, которые по дефолту и нужно будет для них писать стили чтобы ушли. По этой причине оборачивают не в p
, а span
со width: 100%
, либо просто вdiv
, так как он по умолчанию имеет display: block,
который занимает всю ширину родителя.я i
меньше длины pipe.length
будет выполняться:ctx.drawImage
с переданными аргументамиpipeUp, pipe[i].x, pipe[i].y
pipeBottom, pipe[i].x, pipe[i].y + pipeUp.height + gap
pipe[i].x--
- происходит декремент, то есть уменьшение pipe[i].x на единицуpipe[i].x === 125
x
, котрый равен cvs.width
и с ключем y
, который равен Math.floor(Math.random() * pipeUp.height) - pipeUp.height
или{
x: cvs.width,
y: Math.floor(Math.random() * pipeUp.height) - pipeUp.height
}
useEffect = (()=>{запрос},[])
let months = [1,2,3,4,5,6,7,8,9,10,11,12]
let month = 10
let ul = document.createElement('ul')
for(let i = 0; i<months.lenght; i++) {
let li = document.createElement("li")
li.innerHTML = i
ul.appendChild(li)
if(i+1 === 10) li.classList.app('cursive')
}
document.body.appendChild(ul)