Javascript 画布崩溃Chrome浏览器

Javascript 画布崩溃Chrome浏览器,javascript,jquery,arrays,canvas,Javascript,Jquery,Arrays,Canvas,我正在开发一种网络体验,它可以让你们通过在浏览器上来回滚动的方式来浏览剧照。 我遇到的问题是,当我滚动时,Chrome偶尔会崩溃。 这在Firefox中不会崩溃,所以我假设我正在做一些Chrome不喜欢的事情。有什么想法吗 $( document ).ready(function() { "use strict"; //loading array function function preLoad(file, total_array, arrayme, type){ for(var

我正在开发一种网络体验,它可以让你们通过在浏览器上来回滚动的方式来浏览剧照。 我遇到的问题是,当我滚动时,Chrome偶尔会崩溃。 这在Firefox中不会崩溃,所以我假设我正在做一些Chrome不喜欢的事情。有什么想法吗

$( document ).ready(function() {

"use strict";

//loading array function
function preLoad(file, total_array, arrayme, type){
    for(var i = 1; i < total_array; i++) {
      var img = new Image();
      var file_entry = file + i +type;
      console.log(file_entry);
      img.src = file_entry;
      arrayme.push(img);
    }
}

var images = new Array();
var size = 899;
var filename = 'http://t-mrkt.com/Lab/media/MASTER_COMP_';
var file_type =".png";

preLoad(filename,size,images,file_type);

var canv = document.getElementById('background');
var context = canv.getContext('2d');

$(canv)
    .width($(window).width())
    .height($(window).height());

var currentLocation = 0;
//variable for 1/4 proportion 
var arr = Math.floor(images.length/4);

var lastScroll = 0;
var maxScrollLeft = document.getElementById('all').scrollWidth - 
                    document.getElementById('all').clientWidth;

$(window).on('scroll', function(e) {
    var window_loc = $(this).scrollLeft();
    if (window_loc > lastScroll) {
        if (window_loc - lastScroll < 10) {
            currentLocation += 1;
        }
        if (window_loc - lastScroll > 10) {
            currentLocation += 10;
        }          
    }

    if (window_loc < lastScroll) {
        if (window_loc - lastScroll > -10) {
            currentLocation -= 1;
        }
        if (window_loc -lastScroll < -10) {
            currentLocation -= 10;  
        }
    }

    if (currentLocation < 0) {
        currentLocation = 0;
        window_loc = $('body').scrollLeft(0);
        console.log("less than zero");
    }

    if (currentLocation > images.length-1) {
        currentLocation = images.length-1;
        window_loc = $('body').scrollLeft(maxScrollLeft);
        console.log("more than full length");
    }

    //updating value to latest 
    lastScroll = window_loc;
    setImage(currentLocation);

});

function setImage(newLocation) {
    context.drawImage(images[newLocation], 0, 0, canv.width, canv.height);
    console.log(images.length + "length of images");
}

});
$(文档).ready(函数(){
“严格使用”;
//加载数组函数
函数预加载(文件、总数组、数组、类型){
对于(变量i=1;i上次滚动){
如果(窗口位置-最后滚动<10){
当前位置+=1;
}
如果(窗口位置-上次滚动>10){
当前位置+=10;
}          
}
如果(窗口位置<最后滚动){
如果(窗口位置-最后滚动>-10){
当前位置-=1;
}
如果(窗口位置-最后滚动<-10){
当前位置-=10;
}
}
如果(当前位置<0){
currentLocation=0;
窗口位置=$('body')。向左滚动(0);
控制台日志(“小于零”);
}
如果(当前位置>图像。长度-1){
currentLocation=images.length-1;
窗口位置=$('body').scrollLeft(maxScrollLeft);
控制台日志(“超过全长”);
}
//将值更新为最新值
lastScroll=窗口位置;
setImage(当前位置);
});
函数setImage(新位置){
drawImage(图像[新位置],0,0,canv.width,canv.height);
console.log(images.length+“图像长度”);
}
});

您是否大致知道它在哪一部分崩溃?编辑:我不确定你的HTML设置是什么样的,但通常来回移动会触发它。尽管我可能会尝试,但我无法在Firefox中实现。同样的问题也发生在金丝雀身上,无论我是否使用strict.Setup一个JSFIDLE,因为我无法在我的JSFIDLE中重新创建它。谢谢。我只是把大部分代码添加到来回滚动中,然后结束,然后又使我的chrome浏览器版本36.0.1985.125崩溃