javascript - Jquery Cycle + Firefox 压缩图像

标签 javascript jquery image jquery-cycle

我正在为图片库运行 jQuery Cycle。查看链接:Here

我的问题是在 firefox 中查看时图像被压扁。当我重新加载页面时,问题消失了。这让我相信 Javascript 在加载所有图像之前触发(通常第一张图像工作正常,其余图像被压扁。)

硬刷新重现问题。

我已将所有内容包装在 $(document).ready(function(){ });但它仍然会发生。

附加信息:如果我指定图像的宽度和高度,一切正常。然而,有数百张不同尺寸的图片..

我对这个问题感到非常沮丧。非常感谢任何想法/帮助!

这是我的代码:

$(document).ready(function(){
//function onBefore(curr,next,opts) {
//    var $slide = jQuery(next);
//    var w = $slide.outerWidth();
//    var h = $slide.outerHeight();
//    $slide.css({
//        marginTop: (482 - h) / 2,
//        marginLeft: (560 - w) / 2
//    });
//};

// Decare the function that center the images...
function onBefore(curr,next,opts) {
    var $slide = jQuery(next);
    var w = $slide.outerWidth();
    var h = $slide.outerHeight();
    $slide.css({
        marginTop: (480 - h) / 2,
        marginLeft: (560 - w) / 2
    });
};


$(document).ready(function() {
    $('#slideshow').cycle({
     fx:     'fade', 
    next:   '#next', 
    pause: 0,
    speed: 500,
    before: onBefore,
    prev:   '#prev',
    pause:  '#pause',
    pager:  '.thumbs',
    pagerClick:function(zeroBasedSlideIndex, slideElement) {$(slideElement).find('div.cover').hide();},
    pagerAnchorBuilder: function(idx, slide) {
                        var src = $('img',slide).attr('src');
                        //Change height of thumbnail here
                         return '<li><a href="#"><img src="' + slide.src + '" height="90" /></a></li>'; 
                    
                } 
    });});});

最佳答案

我用一个比已经提出的解决方案更简单、更干净的解决方案来解决这个问题:

使用 jQuery,您需要针对您的特定情况使用 $(window).load 而不是 $(document).ready。要解决此问题,请更改此内容:

$(document).ready(function() {
  $('#slideshow').cycle({
    /* ... */
  });
});

对此:

$(window).load(function() {
  $('#slideshow').cycle({
    /* ... */
  });
});

为什么会这样?因为 window.onload 在加载页面上所有引用的图像后触发(请参阅 https://developer.mozilla.org/en/DOM/window.onload.load() - jQuery API ),这是您所希望的情况。 $(document).ready,更广为人知的名称是“DOM Ready”,将在图像加载之前触发。这通常是所需的行为,但在您的情况下还为时过早。

关于javascript - Jquery Cycle + Firefox 压缩图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1719475/

相关文章:

javascript - 使用媒体查询在较小的屏幕上仅滚动模态的距离

javascript - 如何判断正在使用哪个 JSON 对象(Crockford 的或其他的)?

jquery - Unblur Div On Reveal

javascript - 在 JavaScript 中编码 Base64,用 GET 发送,在 PHP 中解码

javascript - 复选框不想切换启用禁用字段

onkeup 后的 javascript 延迟

jquery - Font-Awesome 带有滑动 JQuery 代码错误

javascript - 如何获取存储在 javascript 对象中的图像的宽度和高度?

c# - 将光栅字节[]图像数据转换为C#中的列格式

java - 找不到正确的图像路径