Javascript 使用.animate.scrollTop()滚动时,opera中的屏幕闪烁
这是我正在开发的网站: 在opera上,当用箭头键向下滚动时,网站在闪烁。 以下是我用于滚动的代码:Javascript 使用.animate.scrollTop()滚动时,opera中的屏幕闪烁,javascript,jquery,opera,parallax,Javascript,Jquery,Opera,Parallax,这是我正在开发的网站: 在opera上,当用箭头键向下滚动时,网站在闪烁。 以下是我用于滚动的代码: //bottom of index.html else if ($.browser.opera) { $(function() { $('html').on('keydown', function(event) { var keypressed = event.keyCode; var curScroll = $('ht
//bottom of index.html
else if ($.browser.opera) {
$(function() {
$('html').on('keydown', function(event) {
var keypressed = event.keyCode;
var curScroll = $('html').scrollTop();
var keys = scrollKeys.length;
var moved = false;
console.log("keypressed: " + keypressed);
for (i = 0; i < keys; i++) {
console.log("curScroll: " + curScroll)
if (moved === false) {
if (keypressed === 40 && i != (keys - 1) && parseInt(scrollKeys[i]) <= curScroll && parseInt(scrollKeys[i + 1]) > curScroll) {
$('html').animate({
scrollTop : (parseInt(scrollKeys[i + 1]))
}, 'slow', function() {});
console.log('down');
moved = true;
} else if (keypressed === 38 && i != 0 && parseInt(scrollKeys[i]) >= curScroll && parseInt(scrollKeys[i - 1]) < curScroll) {
$('html').animate({
scrollTop : (parseInt(scrollKeys[i - 1]))
}, 'fast', function(){});
console.log('up');
moved = true;
}
}
}
});
});
}
//index.html的底部
else if($.browser.opera){
$(函数(){
$('html')。在('keydown',函数(事件)上{
var keypressed=event.keyCode;
var curScroll=$('html').scrollTop();
var keys=scrollKeys.length;
var=false;
console.log(“按键:”+按键);
对于(i=0;i=curScroll&&parseInt(滚动键[i-1])
我已经花了一些时间试图解决这个问题,但仍然找不到这种行为的原因。该网站在Chrome、Firefox、IE8、IE9中运行良好。问题只发生在歌剧中。我知道我在index.html的末尾得到了代码x3的这一部分,我会在找到解决方案后立即对此进行优化
你知道这是怎么回事吗
编辑:
我创建了这个提琴:起初,脚本看起来不错,但当你到达底部,并试图再次上升时,屏幕开始闪烁
编辑2:
我认为解决这个问题是防止违约的问题
EditX:
我希望我没有失败编辑这个文件,所以它没有成为一个社区维基。。。无论如何,我升级了代码并在此处提供:
它使用将从jquery 1.9中删除的.browser。添加了一些代码以防止opera中出现默认行为:
$(document).keydown(function(e){
var code = e.keyCode ? e.keyCode : e.which;
if(code === 40 || code === 38){
e.preventDefault();
e.stopPropagation();
return false;
}
});
效果可以在这里看到:
它可以向下/向上滚动,并且可以正常工作
我们将对此进行优化,并在几天内使其成为一个片段:)脚本不应该在键盘上运行而不是在键盘上运行吗?