动画开始有延迟
animation starts with delay
我已经编写了从外部PHP文件加载内容的脚本。我使用jquery1-9-1。我的脚本工作正常,除了那一刻,当我点击按钮第二次。动画开始前有0.5s的延迟。我想我知道问题出在哪里了。$("#header").animate({marginTop: "10px"...
必须在第一次点击时执行。单击此按钮一次后,必须将其停用。谁知道怎么解?别这么苛刻地评判我,对不起我的英语
$(document).ready(function () {
var content = $("#content");
$("#main_menu a").click(function () {
var id = this.id;
$("#header").animate({
marginTop: "10px"
}, 500, function () {
$("#content").fadeOut(500, function () {
$("#content").load(id + ".php")
$("#content").fadeIn(500)
})
})
})
})
我不得不问,缓存content = $("#content")
的意义是什么,如果你然后拒绝使用它,只是反复调用$("#content")
以后?
无论如何,你需要一个变量来告诉它是否是第一次运行:
$(function () {
var content = $("#content"), isfirst = true;
$("#main_menu a").click(function () {
var id = this.id,
reveal = function() {
content.fadeOut(500, function () {
content.load(id + ".php")
content.fadeIn(500)
});
};
if( isfirst) $("#header").animate({marginTop: "10px"}, 500, reveal);
else reveal();
isfirst = false;
});
});
在这种情况下,您需要跟踪它是否已加载。一个简单的变量和一些闭包应该可以做到:
var isLoaded = false;
$("#main_menu a").click(function () {
var id = this.id;
if (!isLoaded) {
$("#header").animate({
marginTop: "10px"
}, 500);
isLoaded = true;
}
$("#content").fadeOut(500, function () {
$("#content").load(id + ".php")
$("#content").fadeIn(500)
})
});
相关文章:
- 可以简化嵌套的延迟Q Promises解析吗
- onclick函数需要双击,因为类分配延迟
- 更多延迟动画
- 如何添加类,同时开始在文本字段中输入文本
- 对父作用域的指令更新延迟了一步
- 为JS函数添加延迟
- 带有延迟的循环每次应运行5次
- 关键帧之间的css3动画延迟
- 如何在有延迟的情况下对两个代码进行积分
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 如何为.css状态的更改添加延迟
- Angular.js延迟控制器初始化
- 在Raphael JS中,不透明度:0和开始动画到不透明度:1之间的延迟
- Dropzone.js延迟发布到服务器,但允许开始上传
- 延迟元素的加载开始
- 自动开始延迟加载图像,而无需等待用户向下滚动页面
- 如何在开始发送请求ajax之前延迟3秒
- 在开始一个将循环自身的函数之前延迟6秒,小,不工作,为什么
- 动画开始有延迟
- 用延迟开始幻灯片