为firefox中的元素设置动画会移动其他元素
animating elements in firefox moves other elements
我正在开发带有键盘控制滚动的单页网站。
我创建了一个javascript函数,它可以为div设置动画以创建滚动效果。
js:
var current_page = "#first";
function animateScroll(curr, des){
$(des).show();
$(des).css("position", "absolute");
$(des).css("z-index", "2");
$(curr).css("z-index", "1");
$(des).css("top", "100%");
$(des).animate({
top : "0px"
}, 800, function(){
$(curr).hide();
current_page = des;
});
}
$(document).on("keyup", function(e){
if(e.keyCode === 40){
animateScroll(current_page, "#" + $(current_page).next().attr("id"));
}
});
html:
<div id = 'why_am_i_moving'></div>
<div class = 'main' id = 'first'>press down key</div>
<div class = 'main' id = 'second'></div>
<div class = 'main' id = 'third'></div>
<div class = 'main' id = 'fourth'></div>
<div class = 'main' id = 'fifth'></div>
css:
body, html{
margin : 0px;
padding : 0px;
width : 100%;
height : 100%;
overflow : hidden;
}
div.main{
width : 100%;
height : 100%;
display : none;
background : white;
}
#first{
background : red;
display : block;
}
#second{
background : blue;
}
#third{
background : green;
}
#fourth{
background : yellow;
}
#why_am_i_moving{
position : absolute;
bottom : 0;
width : 200px;
height : 200px;
background : brown;
z-index : 3;
}
有时,当我在keyup上运行函数时,页面上的所有元素在开始动画之前都会稍微向上移动。
这只发生在firefox(38.0.5)中,并且只有当我使用向下键启动动画时才会发生。
小提琴:http://jsfiddle.net/bd8wzr1L/2/
有人知道这里发生了什么吗?谢谢你的帮助。
据我所知,这是Firefox中的一个bug。当你按下时,身体正在向上移动。可以通过将position: absolute;
添加到body标记来解决此问题。
jsfiddle
相关文章:
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 将元素移动到右侧,然后返回到左侧
- 将jQuery draggable()元素移动到新的父元素
- Jquery-将图像从一个元素移动到另一个元素
- Css-是否可以在调整屏幕大小时使元素移动,以使其适合屏幕
- 制作元素移动的动画
- 如何将较低的z级元素移动到透明png下方
- SVG文本锚点设置使文本元素移动
- 如何将元素移动到鼠标位置
- d3:应用 scale() 变换时元素移动
- jQuery UI 工具提示在源 DOM 元素移动时卡住打开
- 如何在页面上选择文本块,然后将元素移动到其前面
- 下拉列表使元素移动
- 将一个元素移动到另一个元素中,其余元素将转到第三个位置
- 将最后一个元素移动到数组中的第二个项目的最快方法
- Javascript以可变的角度和速度为元素移动制作动画
- 在 JavaScript 中将数组元素移动到变量
- 使用jQuery单击时将元素移动/复制到另一个位置
- 将排序数组的数组元素移动到具有特殊逻辑的另一个位置
- 如何跟踪元素移动和特定位置的触发功能