Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

188
Visualizações
No se puede desplazar la imagen hacia arriba si se hace zoom con CSS

Creé un componente de vista de imagen con botones para rotar, acercar y alejar. Cuando hace clic en un botón, agrega transform CSS a la imagen.

Por alguna razón, cuando hago zoom en la imagen, no puedo desplazarla hasta la esquina superior o izquierda. Traté de agregar transform-origin: top left; a la imagen, y corrige el zoom, sin embargo, rompe la rotación. ¿Cómo puedo solucionar este problema?

Puedes ver mi código aquí https://codesandbox.io/s/delicate-star-eitj3s?file=/src/app/app.component.ts

EDITAR: transform-origin: top left; hace que la imagen se adhiera a la esquina superior izquierda, pero necesito mantener la imagen en el centro. ¿Es posible arreglar el desplazamiento y mantener el origen de las transformaciones de la imagen en el centro?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

tienes razón.transform-origin: arriba a la izquierda; es la solución Ponga la condición en su método transformImage como se muestra a continuación y pase verdadero/falso

 private transformImage(zoom): void { this.renderer.setStyle( this.image.nativeElement, "transform", `rotate(${this.angle}deg) scale(${this.scale})` ); if (zoom) { this.renderer.setStyle( this.image.nativeElement, "transform-origin", `top left` ); }

}

https://codesandbox.io/s/practical-night-n71z3q?from-embed

over 4 years ago · Santiago Trujillo Relatório

0

 rotate(): void { this.angle = this.angle + 90; this.transformImage("rotate"); } private transformImage(transformType?: string): void { switch (transformType) { case "rotate": this.renderer.setStyle( this.image.nativeElement, "tranform-origin", "center center" ); break; default: this.renderer.setStyle( this.image.nativeElement, "tranform-origin", "top left" ); break; } this.renderer.setStyle( this.image.nativeElement, "transform", `rotate(${this.angle}deg) scale(${this.scale})` ); }

codigosandbox

over 4 years ago · Santiago Trujillo Relatório

0

Podemos usar alto y ancho para hacer zoom y transformar para rotar. Con display:flex se puede mantener en el centro. Manifestación

 .image-viewer { display: flex; overflow: auto; width: 100%; height: 100%; border: 1px solid black; } .image-viewer img { margin:auto; width: 70%; height: 70%; transition: 0.3s; } .image-controls { width: 100%; text-align: center; } .image-controls button { transition: opacity 0.2s; opacity: 0.8; &:hover { opacity: 1; } }
 private transformImage(): void { this.renderer.setStyle( this.image.nativeElement, "transform", `rotate(${this.angle}deg)` ); this.renderer.setStyle( this.image.nativeElement, "width", `${100 * this.scale}%` ); this.renderer.setStyle( this.image.nativeElement, "height", `${100 * this.scale}%` ); /*this.image.nativeElement.scrollIntoView({ behavior: "smooth", inline: "center", block: "start" });*/ }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda