Boa tarde galera, estou tentando dar zoom quando o mouse passa por cima da imagem, e elaborei a seguinte função em JavaScript:
function aumentarImagem(obj){
console.log('Valor antes de aumentar: '+obj.height);obj.width=obj.width+50;obj.height=obj.height+50;console.log('Valor após aumentar: '+obj.height);alert('Entrando na função');}functiondiminuirImagem(obj){console.log('Valorantesdeaumentar:'+ obj.height); obj.width = 100; obj.height = 100; console.log('Valorapósaumentar:'+obj.height); alert('Entrandonafunção');}
Mas ao verificar os dados que estão sendo retornado no console não traz a somatória e consequentemente a imagem também não da o zoom, onde esta o erro ?
Não seria incorreto deixar o tamanho da imagem direto na tag ?
H
hugokotsubo
Como você definiu os tamanhos no CSS (130px e 100px), podia colocar valores fixos também para aumentar e diminuir. Além disso, essas propriedades ficam no style, então as funções ficariam assim:
Claro, se quiser incrementar um pouco (por exemplo, deixar configurável o quanto a imagem aumenta), poderia fazer algo do tipo:
varincremento=50;varheightDefault='100px',widthDefault='130px';functionaumentarImagem(obj){console.log('Valor antes de aumentar: '+obj.style.height);obj.style.width=add(obj.style.width||widthDefault,incremento);obj.style.height=add(obj.style.height||heightDefault,incremento);console.log('Valor após aumentar: '+obj.style.height);}functiondiminuirImagem(obj){console.log('Valor antes de diminuir: '+obj.style.height);obj.style.width=add(obj.style.width||widthDefault,-incremento);obj.style.height=add(obj.style.height||heightDefault,-incremento);console.log('Valor após diminuir: '+obj.style.height);}functionadd(valor,incremento){varn=parseInt(valor.slice(0,-2));varunidade=valor.slice(-2);return`${n+incremento}${unidade}`;}
Outra coisa, quando você define as propriedades no CSS, elas não estarão acessíveis no style do elemento (somente se você declará-las inline no HTML). Mas você pode obtê-las usando window.getComputedStyle. Outro ponto é que as funções que aumentam e diminuem são praticamente iguais, então daria para generalizar um pouco, assim: