Код: Выделить всё
const top = rect.top;
const left = rect.left;
const width = rect.width;
const height = rect.height;
const right = left + width;
const bottom = top + height;
// Create a mask that’s black everywhere except for a transparent rectangle
this.maskValue = `
linear-gradient(to right, black ${left}px, transparent ${left}px, transparent ${right}px, black ${right}px),
linear-gradient(to bottom, black ${top}px, transparent ${top}px, transparent ${bottom}px, black ${bottom}px)
`);

Когда я добавляю еще два линейных градиента к моему значению маски (для второго прямоугольника), это просто уменьшает всю прозрачную область.
Подробнее здесь: https://stackoverflow.com/questions/797 ... g-else-out
Мобильная версия