Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
Cambiar el ancho directamente frente a cambiar el ancho de la propiedad personalizada CSS

Tengo un problema con la expansión del ancho del panel lateral en JavaScript:

Necesito cambiar el tamaño en el evento mousemove pero el rendimiento visual de cambiar el ancho (como el.style.width = value ) es mucho mejor que cambiar la propiedad personalizada (como style.setProperty('--side-panel-width, value) ) - En realidad, el segundo está helado :(

Sin embargo, quiero cambiar la propiedad personalizada, porque el posicionamiento de otros 2 paneles depende de este valor de propiedad personalizada:

 .other-panel { left: calc(var(--side-panel-width) + var(--offset)); }

Mi código del controlador de eventos mousemove (simplificado):

 onMouseMove(e) { requestAnimationFrame(() => const parent = this.$refs.resize.parentNode; const dx = this.size - ex; this.size = ex; const value = (parseInt(getComputedStyle(parent, '').width) + dx); parent.style.width = value + 'px'; // CHANGE WIDTH DIRECTLY // this.app.style.setProperty('--side-panel-width', value + 'px'); // OR CHANGE CUSTOM PROPERTY ) }

Por favor, ¿puede explicar por qué ocurre este problema de rendimiento y hay alguna forma de resolverlo sin cambiar el ancho directamente?

UPD:

  • Simplifiqué mi código para el controlador de eventos para hacerlo más esencial
  • Apliqué will-change: width; Propiedad CSS a .side-panel también
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si desea cambiar la variable css, lo primero que debe hacer es seleccionar :root :

 const root = document.querySelector(':root');

después

 root.style.setProperty('--side-panel-width', value + 'px');

Espero que esto ayude

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!