为什么我的js只在页面刷新时才能正常工作?

时间:2015-05-26 10:33:46

标签: javascript jquery

不知道为什么会发生这种情况,谷歌只是提出与AJAX有关的事情。该脚本随机将图像放在窗口边界内。当我加载页面时,图像是随机放置的,但不在窗口边界内,当我刷新它们的页面时...任何人都有任何想法?

这是我的代码:

$(document).ready(function() {
    // Randomly place CMYK images on contact page
        function randomFromTo(from, to){
            return Math.floor(Math.random() * (to - from + 1) + from);
        }

        function moveRandom(obj) {
            // Get window data
                var wPos = $('body').offset();
                var wWidth = $('body').width();
                var wHeight = $('body').height();

            // Get moveable element size
                var eWidth = obj.width();
                var eHeight = obj.height();

            // Maximum and minimum positions
                var maxX = wPos.left + wWidth - eWidth;
                var maxY = wPos.top + wHeight - eHeight;
                var minX = wPos.left;
                var minY = wPos.top;

            // Set new position
                var newX = randomFromTo(minX, maxX);
                var newY = randomFromTo(minY, maxY);

                obj.css({
                    'position' : 'absolute',
                    'z-index' : '0',
                    'left' : newX,
                    'top' : newY
                });
        }

        $('.selfie img').each(function() {
            moveRandom($(this));
        });
});

1 个答案:

答案 0 :(得分:4)

我的猜测是你正在检查文件就绪的图像宽度和高度,这并不能保证图像已经加载。在第一次加载后,它们被缓存,所以你很幸运,他们已经准备好了。

尝试将$(document).ready更改为$(window).load,以确保加载图片。