本课讲的是一种设计模式,我们学的是这种思维模式,而不是方法。除非你有<script src="observer.js"></script>这个源代码。没有observer.js(这个文件应该是老师自己写的),new Observer()并无效,因为这个不是js的原生对象
2018-05-06
发布一个A事件,当触发了这个事件之后,所有订阅了A事件的函数都会执行。而注销了A事件之后,再去触发A事件(此时已经不存在A事件了),所以订阅了A事件的函数就不会再执行了。就这么简单很容易理解。
点击第一个按钮,执行了function(){alert("page任务完成")},再点击第二个按钮,注销了订阅事件,此时再去点击第一个按钮,已经不会执行alert()了。
点击第一个按钮,执行了function(){alert("page任务完成")},再点击第二个按钮,注销了订阅事件,此时再去点击第一个按钮,已经不会执行alert()了。
2018-05-06
return new Promise(function (resolve) {
$gril.addClass("girl-walk")
$boy.transition({"right":"4.5rem"},4000,"linear",function(){
resolve();
})
})
callback();
$gril.addClass("girl-walk")
$boy.transition({"right":"4.5rem"},4000,"linear",function(){
resolve();
})
})
callback();
2018-01-30
对$.Deferred()流程想了解更清楚些的看这个。
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
2018-01-26
给bird加上背景色看看!!
排第一的那位,因为对应前缀不同,写的方法不同,但做到了相同的效果。主要就是steps()函数,要搞清楚这个,简单来讲,第二个参数如果是start,那么@keyframes是从第二个{}开始,如果是end,就从第一个{}开始(不写第二个参数的话默认是end)
验证的话可以把400ms改成2400ms看动画效果。
至于第一个参数它是表示@keyframes中两个{}{}之间变化所需的次数,
steps(3)对应0~300(每次变化三次)
steps(1,start)对应0~100~200~300(每次变化1次)
唉,我说不来,大家还是网上搜一下steps()的介绍吧。
排第一的那位,因为对应前缀不同,写的方法不同,但做到了相同的效果。主要就是steps()函数,要搞清楚这个,简单来讲,第二个参数如果是start,那么@keyframes是从第二个{}开始,如果是end,就从第一个{}开始(不写第二个参数的话默认是end)
验证的话可以把400ms改成2400ms看动画效果。
至于第一个参数它是表示@keyframes中两个{}{}之间变化所需的次数,
steps(3)对应0~300(每次变化三次)
steps(1,start)对应0~100~200~300(每次变化1次)
唉,我说不来,大家还是网上搜一下steps()的介绍吧。
2018-01-25