Я создаю плагин jQuery, который хорошо работает на сервере. Однако, если я пытаюсь использовать его локально, он терпит неудачу, потому что ширина и высота возвращают ноль. Код нарушения:
$("#off-screen").load(function() {
var naturalWidth = this.width;
var naturalHeight = this.height;
});
... который должен получить ширину и высоту динамически загруженного изображения без видимого изображения с идентификатором заставки. Я использую this.width, а не width(); потому что я где-то читал, что может помочь с кэшированными изображениями, но ни один из способов не работает локально.
На сервере: http://kthornbloom.com/smoothzoom/
Локальный (загрузка из Github, и вы увидите, что изображения не отображаются правильно в Chrome): https://github.com/kthornbloom/Smoothzoom
Почему один и тот же точный код работает на сервере, но не локально?
вместо того, чтобы просто настроить обработчик load
на анонимную функцию, которая ничего не делает, вы, вероятно, должны просто поместить код, который зависит от загружаемого изображения внутри обработчика.
Это работает на моей машине:
$("#off-screen").load(function() {
$('#lightwrap img').css({
width: width,
height: height,
top: (offset.top - amountScrolled),
left: offset.left
});
imageSizer();
$('#lightbg').fadeIn();
event.preventDefault();
});