教你制作网页滑动切换效果.doc_第1页
教你制作网页滑动切换效果.doc_第2页
教你制作网页滑动切换效果.doc_第3页
教你制作网页滑动切换效果.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我做了一个关于网页滑动切换的小例子。这个确实很简单,只要你会使用jQuery、jQuery Mobile、zepto或者其他一些框架,然后他们会给你处理好这个。我不想这么做,我想挑战一下不使用任何框架就可以实现这个效果。HTML代码是越简单越好。我谷歌搜索了下相关的资料,没有找到什么好的解决办法,所以我打算自己写。我想出的解决办法其实很简单,采用AJAX刷新、CSS切换。这里还需要注意的是,只有在WebKit浏览器上能看到效果。(我个人用PhoneGap做了一个测试应用,可以在Android和IOS系统上运行,所以我只需要WebKit的兼容性。)首先,我们来看看对body标签的css样式,我让它有动画效果:1. body 2. position:relative; 3. -webkit-transition:left.2sease; 4. 接下来,我做的是给超链接添加点击事件,让它产生切换效果。这我从一篇很棒的文章中学到的一些方法,来处理这些没有jQuery时的操作,那篇文章叫从jQuery到JavaScript。1. 01document.addEventListener(DOMContentLoaded,function() 2. 02replaceLinks(); 3. 03); 4. 04 5. 05functionreplaceLinks() 6. 06varlinks=document.querySelectorAll(a); 7. 07 8. 08for(i=0;ilinks.length;i+) 9. 09varlink=linksi; 10. 10link.addEventListener(click,replacePage,false); 11. 11 12. 12 13. 13下一步是使用AJAX获取到链接页面。1. 1event.preventDefault(); 2. 2varhref=this.href; 3. 3 4. 4varajax=newXMLHttpRequest(); 5. 5ajax.open(GET,href,true); 6. 6ajax.send();现在来看看要达到切换效果,还需要哪些步骤:1. 滑动当前页面到屏幕左侧;2. 瞬间移动当前页面到屏幕右侧;3. 替换body里面的内容;4. 从屏幕右侧滑入当前页面对。你必须要遵循上面的步骤,不然不能达到预期的效果;现在我来告诉我是怎么做的:我移动body到屏幕的左侧1. 1body.style.left=-100%;这里我写了个移动监听事件1. 1body.addEventListener(webkitTransitionEnd,moveToRight,false); 2. 2 3. 3functionmoveToRight(event) 4. 4varbody=document.querySelector(body); 5. 5body.removeEventListener(webkitTransitionEnd,moveToRight,false); 6. 6body.addEventListener(webkitTransitionEnd,returnToCenter,false); 7. 7body.style.opacity=0; 8. 8body.style.left=100%9. 9接下来,我替换body的内容,让它再次可见,调整浏览记录,并将它带回屏幕中心。1. 1functionreturnToCenter(event) 2. 2varbody=document.querySelector(body); 3. 3body.removeEventListener(webkitTransitionEnd,returnToCenter,false); 4. 4body.innerHTML=bodyContent; 5. 5history.pushState(null,null,href); 6. 6body.style.opacity=1; 7. 7body.style.left=0; 8. 8replaceLinks(); 9. 9切换过程中,用户可能会点击后退按钮,我们还需对此进行处理:1. 01window.addEventListener(popstate,handleBackButton); 2. 02 3. 03functionhandleBackButton(e) 4. 04 5. 05varajaxBack=newXMLHttpRequest(); 6. 06ajaxBack.open(GET,location.pathname,true); 7. 07ajaxBack.send(); 8. 08 9. 09ajaxBack.onreadystatechange=function() 10. 10varbodyBack=document.querySelector(body); 11. 11varbodyBackContent=grabBody(ajaxBack.responseText,body); 12. 12bodyBack.addEventListener(webkitTransitionEnd,moveToLeft,false); 13. 13bodyBack.style.left=100%; 14. 14 15. 15functionbackToCenter(event) 16. 16varbody=document.querySelector(body); 17. 17body.removeEventListener(webkitTransitionEnd,backToCenter,false); 18. 18body.innerHTML=bodyBackContent; 19. 19body.style.opacity=1; 20. 20body.style.left=0; 21. 21replaceLinks(); 22. 22 23. 23 24. 24functionmoveToLeft(event) 25. 25varbody=document.querySelector(body); 26. 26body.removeEventListener(webkitTransitionEnd,moveToLeft,false); 27. 27body.addEventListener(webkitTransitionEnd,b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论