一些面试题
- What does a doctype do?
- doctype 有什么作用
- What's the difference between standards mode and quirks mode?
- 浏览器的标准模式和怪异模式(以及兼容模式)
- What's the difference between HTML and XHTML?
- HTML 和 XHTML 的区别是什么?
jQuery 插件基础
什么是 jQuery 插件
对 jQuery 的功能的扩展
- jQuery 不能操作 Cookie,你只能用 DOM API
- jQuery 不能方便的生成轮播组件
- 其他 jQuery 没有的功能……
我们可以通过给 jQuery 和 jQuery.fn 添加方法,
来达到扩展 jQuery 的目的
扩展 jQuery
1. 给 jQuery 添加方法
详细原理会在进阶部分阐述
- 为什么给 fn 添加方法就能在 $node 上调用?
- 为什么 this 总在变?
2. 给 jQuery.fn 添加方法
http://js.jirengu.com/hix/1/edit 通过 jQuery.xxx 调用
http://js.jirengu.com/laq/1/edit?html,css,js,output
通过 $node.xxx 调用
插件一:回到顶部
结合 CSS 与 jQuery 知识
插件提供者帮助使用者准备 HTML
使用者自备 HTML
插件一:回到顶部
可优化点:
- 提供 template 选项
- 提供动画选项
- 检测 window scroll
- 还有很多可以优化,等待你去发掘……
插件二:手风琴
插件二:手风琴
效果:
点击任意 item,该 item 展开,其他 item 折叠
可优化点:
- 添加动画
- HTML 结构更灵活(不一定是子节点)
插件三:轮播
重点:
- 对内容结构(HTML)进行思考
- 对样式(CSS)进行思考
- 对行为(JS)进行思考
http://js.jirengu.com/peq/7/edit
思路:
- 一个列表滚来滚去
- 将消失的元素插入末尾
- 只显示一个元素,其他元素隐藏
思考
- 如果传给插件的 jQuery 对象包含不止一个元素,怎么办?
- 插件的返回值是什么?
-
组件化:页面上可以存在插件的实例,它们之间互不影响
答案
- $node.each 遍历
- 返回当前 jQuery 对象,以实现链式调用
完
作业: slides.html
自己实现轮播插件(尽量不要和方方的思路一样)
jquery plugin(有作业)
By 方方
jquery plugin(有作业)
- 1,701