sliding总结

布局

在写每一个具体的页面时,一定一定要精心设计它的布局,在一定能保证实现JS行为的高度上来设计布局。考虑每一个标签的位置,尺寸,如何嵌套。
当然,sliding这个插件主要的是两大部分:content and sliding。注意锚点的设置。

JS交互

在写JS交互时,时刻要问自己接下来我要做的是什么或者接下来我要解决的问题的是什么?并且要学会将大的问题拆分成小的问题
先想好你都要解决哪些问题,这些问题都可以如何解决?都用到哪几种方法,每一种方法是否可以应用同一个方法?这些方法之间是否具有相关性?

针对于这个插件,需要解决的问题如下:
1.content滚动
* 如何检测锚点?
* 检测到锚点以后如何使箭头指向相应条目?
* 当箭头到达一定位置,sliding滑块相应的移动?
2.sliding条目的点击
* 点击条目使箭头指向相应的条目?
* 点击条目使content滚动到相应的内容区?
* 当箭头到达一定位置,sliding滑块相应的移动?
3.两者之间的联系
* 点击条目会造成content触发滚动时间,反过来影响sliding,如何阻止这种影响?

具体技术细节

1.锚点的检测.

slidings.png

每一块内容都有自己的一块检测区域,检测父元素的scrollTop是否在检测区内即可检测到相应的内容。

2.获取scrollTop

刚开始考虑在滚动的过程中,持续获取scrollTop值,当时却发现会出现很多bug,于是乎想到通过延迟函数异步获取每次滚动接触后的scrollTop值,这点很巧妙,值得深深研究一下

var timer = flase; elem.on('scroll',function(){ if(timer){ clearTimerOut(timer); } timer = setTimerOut(function(){ //执行JS代码 }); });

3.点击条目后阻止页面滚动对sliding造成的影响

引入一个全局的引用类型的变量,通过检测对象中值的值来控制页面滚动造成的影响。

好了,今天先到这吧,肚子有些饿了,总之,任重而道远!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,707评论 25 709
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,914评论 22 665
  • 文/恰恰天蓝 || 邀你一起,生命不息,日更不止 虚拟经济是人为的割裂开来的。 就像马云最近的演讲,他一而在再而三...
    恰恰天蓝阅读 255评论 0 1
  • 麦子新熟菜籽香,村中男女惜寸光。 披星扶犁田翻滚,戴月荷锄地成行。 布谷声声催秧起,塘蛙片片唱晚凉。 萤虫掌灯来相...
    半个读书人阅读 325评论 19 28