Estoy tratando de vincular un style.transform = translate al scroll pero no funciona. Otros atributos están respondiendo. Estaría encantado de cualquier apoyo :)
window.addEventListener('scroll', () => { let y = 1 + (window.scrollY || window.pageYOffset) / 20; y = y < 1 ? 1 : y; // ensure y is always >= 1 (due to Safari's elastic scroll) position = '"translate(0,' + '-' + y + 'vh)"' document.getElementById("marqueeup").style.transform = position; }) #marqueeup { width: 200px; height: 100px; background-color: red; } #placeholder{ width: 100px; height: 600px; background-color: blue; } <div id="marqueeup"></div> <div id="placeholder"></div>Eliminar las comillas dobles.
use position = 'translate(0,' + '-' + y + 'vh)'
O incluso mejor, use literales de plantilla para que
position = `translate(0,-${y}vh)` window.addEventListener('scroll', () => { let y = 1 + (window.scrollY || window.pageYOffset) / 20; y = y < 1 ? 1 : y; // ensure y is always >= 1 (due to Safari's elastic scroll) const position = `translate(0,-${y}vh)`; document.getElementById("marqueeup").style.transform = position; }) #marqueeup { width: 200px; height: 100px; background-color: red; } #placeholder { width: 100px; height: 600px; background-color: blue; } <div id="marqueeup"></div> <div id="placeholder"></div>