JQuery .animate()修改代码块中不包含的属性
JQuery .animate() modifying properties not included in code block
我正在尝试创建一个动画,沿着x轴压缩标题,直到宽度和高度为50px,然后沿着y轴展开,创建一个宽度为50px的边栏,如果窗口向下滚动,当窗口滚动到顶部时,情况正好相反。
当用户从0向下滚动时,动画运行良好,但是当窗口滚动到顶部时,ShowHeader()
中的第二个animate()
方法将height: 100%
添加到元素中,即使只指定了width: 100%
,因此标题填充了页面。
我想知道当只指定宽度时,animate()方法从哪里获得修改高度的指令。
$(function HideHeader() {
$(window).scroll(function () {
if ($(this).scrollTop() > 0) {
$('header').animate({
"width": "50px"
}, {
queue: false,
complete: function () {
$("#navtop").fadeOut("fast", function () {
$('header').animate({
"height": "100%"
}, {
queue: false,
complete: function () {
$("#navside").fadeIn("fast");
}
})
})
}
});
}
});
});
$(function HideHeader() {
$(window).scroll(function () {
if ($(this).scrollTop() === 0) {
$('header').animate({
"height": "50px"
}, {
queue: false,
complete: function () {
$("#navside").fadeOut("fast", function () {
$('header').animate({
"width": "100%"
}, {
queue: false,
complete: function () {
$("#navtop").fadeIn("fast");
}
})
})
}
});
}
});
});
这里也有一个JSFiddle链接:http://jsfiddle.net/2ERDesign/bm84y/1/
这是关于排序动画,一个基本的解决方案是:
$(function HideHeader() {
$(window).scroll(function () {
if ($(this).scrollTop() > 0) {
$('header').animate({
"width": "50px"
}, {
queue: false,
complete: function () {
$("#navtop").fadeOut("fast", function () {
$('header').animate({
"height": "100%"
}, {
queue: false,
complete: function () {
$("#navside").fadeIn("fast");
}
})
})
}
});
}
});
});
$(function HideHeader() {
$(window).scroll(function () {
if ($(this).scrollTop() === 0) {
$('header').animate({
"width": "100%"
}, {
queue: false,
complete: function () {
$("#navside").fadeOut("fast", function () {
$('header').animate({"height": "50px"
}, {
queue: false,
complete: function () {
$("#navtop").fadeIn("fast");
}
})
})
}
});
}
});
});
http://jsfiddle.net/bm84y/3/虽然更推荐使用纯CSS,或者甚至使用transit.js
我还是推荐这个
#header{
-webkit-transition: width 0.4s; /* For Safari 3.1 to 6.0 */
transition: width 0.4s;
}
,而不是使用animate只是使用css("height","50px")
与css("width","100%")
和css("height","100%")
与css("width","50px")
相关文章:
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 在循环中包含特定属性
- JavaScript选择器:查找包含具有特定属性的子体的节点
- 访问键中包含空格的嵌套属性
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- 在包含带有jquery或js的html的变量中禁用change属性
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- Javascript:如何制作一个包含4个具有相同属性的对象的数组
- 句柄中包含括号的问题处理属性
- 替换对象's属性,其中包含JavaScript中另一个对象的属性,不包含库
- 检查所选元素是否包含属性
- 为什么JavaScript包含属性在Chrome浏览器中不起作用
- 如何使用 $.parseXML 在客户端上分析包含属性的 xml 字符串
- 使用字符串访问包含属性的数组
- 使用包含属性的键和值的字符串创建数组
- 包含属性的数组中的IndexOf
- 是否有一种简单的方法来判断json对象是否包含属性
- JavaScript对象如何包含属性(键值对)的数组(带方括号)?
- 返回包含属性的函数中的函数
- 获取包含属性onclick的image,然后隐藏img