El ancho de jquery del navegador Chrome y Safari () no puede tener el problema de altura

Resumen del problema:

Incluso si desea atravesar un grupo de imágenes, debe obtener el ancho al atravesar. Después del efecto, IE y Firefox no tienen problemas. Solo Chrome y Safari no obtendrán el ancho de la imagen. En el pasado, era básicamente incompatibilidad con IE. Ahora, Chrome y Safari son incompatibles. Se siente extraño, así que escríbalo y compártalo.

Nota: Antes de modificar el código, use directamente $ (ele) .width () para obtener el ancho de la imagen. Código involucrado:


  
   
   
  1. $(function(){
  2. ... //此处省略N行
  3. var w = $(this).width();
  4. ... //此处省略N行
  5. });

Después del análisis, se encuentra que Chrome y Safari deben tener la imagen aún no cargada por completo, por lo que fueron a obtener el ancho de la imagen. Si el ancho es 0, debe haber un error.

Solución:

1. No use "$ (document.ready (function () {...})" o su forma abreviada "$ (function () {...}), use $ (window) .load (function () {}); code Reescribe como sigue:


  
   
   
  1. $(window).load(function(){
  2. ... //此处省略N行
  3. var w = $(this).width();
  4. ... //此处省略N行
  5. });

  
   
   
  1.  

En segundo lugar, use el objeto Image y su método de carga


  
   
   
  1. $(function(){
  2. ... //此处省略N行
  3. var that = $(this);
  4. var img = new Image();
  5. img.src = $(this).attr("src");
  6. img.onload = function(){
  7. var w = img.width;
  8. }
  9. ... //此处省略N行
  10. });

Por último, obtenga la altura y use $ (ele) .height () para solucionar este problema en Chrome y Safari.





Fuente:

Supongo que te gusta

Origin blog.csdn.net/xiongxyt2/article/details/17116409
Recomendado
Clasificación