As vezes é difícil achar uma ferramenta que se encaixe totalmente ao seu sistema e realmente resolva o problema, por isso é necessário algumas horas de pesquisa. No meu caso eu precisava de uma feramenta de zoom de imagens que fosse simples de aplicar e permitisse aumentar e diminuir a ampliação da imagem. Depois de muitas pesquisas encontrei o TJPZOOM, fácil de aplicar no sistema e todo mundo gostou!
Como trabalho em sistema Linux os browsers que testei foi o Firefox, Chrome e o Opera. Estava tudo beleza, até que finalmente testamos no micro do cliente que usava IE!
Em qualquer browser a lente(caixa cinza) estava na mesma posição do mouse (seta branca).
No browser do cliente (Internet Explorer 7), por algum motivo a lente(caixa cinza) estava afastada do ponteiro do mouse(seta branca).
Triste, estava tudo perfeito! Tudo! Mas a incompatibilidade entre os browsers me pegou! Teria que procurar outra feramenta de zoom ou tentar arrumar essa… escolhi tentar arrumar!
Não sei exatamente porque funcionou, mas fiquei mexendo… mudando as variáveis e enfim… funcionou! Então se estiver com o mesmo problema que o meu, tente modificar esse trecho do código:
obs: Só fiz essa alteração para os IE acima do 7, pois não sei se o 6 precisa dessa alteração. Se ele precisar você pode modificar o código para alteração funcionar para qualquer IE.
function TJPhandlemouse(evt,obj) { var evt = evt?evt:window.event?window.event:null; if(!evt) { return false; } if(evt.pageX) { nowx=evt.pageX-TJPfindposx(obj)-TJPadjustx; nowy=evt.pageY-TJPfindposy(obj)-TJPadjusty; } else { if(document.documentElement && document.documentElement.scrollTop) { nowx=evt.clientX+document.documentElement.scrollLeft-TJPfindposx(obj)-TJPadjustx; nowy=evt.clientY+document.documentElement.scrollTop-TJPfindposy(obj)-TJPadjusty; } else { //Modified by Ulisses de Almeida to work in IE if(getInternetExplorerVersion() >= 7.0){ nowx=evt.x+document.body.scrollLeft-TJPadjustx; nowy=evt.y+document.body.scrollTop-TJPadjusty; } else{ nowx=evt.x+document.body.scrollLeft-TJPfindposx(obj)-TJPadjustx; nowy=evt.y+document.body.scrollTop-TJPfindposy(obj)-TJPadjusty; } } } if(evt.type == 'mousemove') { TJPsetwin(obj,nowx,nowy); } else if(evt.type == 'mousedown') { TJPmouse=1; //left: 1, middle: 2, right: 3 TJPmousey=nowy; TJPmousex=nowx; } else if(evt.type =='mouseup') { TJPmouse=0; } else if(evt.type =='mouseout') { TJPmouse=0; if(navigator.appVersion.indexOf('Mac') == -1 || navigator.appVersion.indexOf('MSIE') == -1) { //hi Mac IE x=obj.parentNode; x.removeChild(x.getElementsByTagName('div')[0]); x.removeChild(x.getElementsByTagName('div')[0]); } } } // Function from MSDN Giorgio Sardo Blog function getInternetExplorerVersion() { var rv = -1; // Return value assumes failure. if (navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat(RegExp.$1); } return rv; }
Se você não quiser alterar o Java script na mão, você pode baixar a minha versão do código fonte com a alteração [download]. Espero ter ajudado! Qualquer coisa que você desejar me dizer, por favor deixe um comentário!
Nenhum comentário:
Postar um comentário