Javascript 画布崩溃Chrome浏览器
我正在开发一种网络体验,它可以让你们通过在浏览器上来回滚动的方式来浏览剧照。 我遇到的问题是,当我滚动时,Chrome偶尔会崩溃。 这在Firefox中不会崩溃,所以我假设我正在做一些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
$( 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崩溃