元素在 JQuery 动画后恢复为原始大小
Elements reverting back to original sizes after JQuery animation
所以我试图让我的标题在用户向下滚动页面一定距离后将其大小更改为更小,标题的动画在正确的时间执行越来越大。唯一的问题是动画使标题更大,动画按预期发生,但是一旦完成动画,由于某种原因,标题就会恢复到其原始大小。不确定这是否有任何区别,但标头在 css 中的位置设置为固定。我从未遇到过这样的问题,所以不知道出了什么问题,谷歌搜索它也没有帮助我。
您可以在此处查看问题:http://eventrem.com
完整的Javascript:
function getScrollOffsets() {
var doc = document, w = window;
var x, y, docEl;
if ( typeof w.pageYOffset === 'number' ) {
x = w.pageXOffset;
y = w.pageYOffset;
} else {
docEl = (doc.compatMode && doc.compatMode === 'CSS1Compat')?
doc.documentElement: doc.body;
x = docEl.scrollLeft;
y = docEl.scrollTop;
}
return {x:x, y:y};
}
var IsHeaderBig;
window.onload = function() {
var offset = getScrollOffsets();
if (offset.y > 100) {
IsHeaderBig = false;
animateHeaderSmall(0);
} else {
IsHeaderBig = true;
animateHeaderBig(0);
}
}
window.addEventListener('scroll', function(){
var offset = getScrollOffsets();
if (offset.y > 100) {
//Make Small
if (IsHeaderBig) {
IsHeaderBig = false;
animateHeaderSmall(300);
}
} else {
//Make Big
if (!IsHeaderBig) {
IsHeaderBig = true;
animateHeaderBig(300);
}
}
});
function animateHeaderBig(speed) {
var header = $("#headerContainer");
var buffer = $("#homeBuffer");
header.animate({
height:'548px'
}, speed, function() {});
buffer.animate({
height:'470px'
}, speed, function() {});
}
function animateHeaderSmall(speed) {
var header = $("#headerContainer");
var buffer = $("#homeBuffer");
header.animate({
height:'100px'
}, speed, function() {});
buffer.animate({
height:'100px'
}, speed, function() {});
}
简单的解决方案是处理complete
函数并在那里设置值。
function animateHeaderBig(speed) {
var header = $("#headerContainer");
var buffer = $("#homeBuffer");
header.animate({
height:'548px'
}, {
duration: speed,
complete: function() {
$(this).css('height', '548px');
}
});
buffer.animate({
height:'470px'
}, {
duration: speed,
complete: function() {
$(this).css('height', '470px');
}
});
相关文章:
- 从jquery对话框恢复原始数据,脚本不起作用
- CSS 动画将恢复为原始状态
- jquery悬停后恢复到原始图像是更好的方式
- 如何在拖动时使项目恢复到其原始位置
- 在 history.pushState 之后导航时恢复原始页面
- 按 Esc 按钮后恢复为原始 html
- 向上滚动时,基于滚动位置的 javascript 动画不会恢复到其原始状态
- Javascript变量恢复为原始变量
- HTML In Page 在使用 AJAX 更改内部 HTML 后恢复为原始 HTML
- 是否可以在每次单击按钮时更改背景颜色并恢复为纯JavaScript中的原始颜色
- 元素在 JQuery 动画后恢复为原始大小
- 为什么这个 HTML/JS 在更改内部 HTML 后会恢复到原始状态
- jQuery UI如果移动的距离小于一定距离,则可拖动恢复到原始位置
- 用Selenium突出显示WebElement并恢复原始边界
- Kendo UI网格取消不会恢复原始数据
- 如何恢复到原始CSS
- 如何在. CSS()方法后恢复到原始CSS值
- 如何使可拖拽对象仅在拖到无效可拖拽对象上时才恢复到原始位置?
- 鼠标悬停时更改字体大小,鼠标离开时恢复为原始字体
- 恢复被mixin覆盖的原始lodash方法