使用css3中transition的页面切换(继续创新版)
2013-03-14 17:32
555 查看
上一篇文章,我从教程中学到了使用css3中transition的页面切换,而这次呢,我就稍微使用这个方法稍做一些少少改动,我的想法是将所有层都叠在一起,一个一个从下往上翻。然后接着这个思路我又想到如果翻完的话怎么办?我就弄多了一个可以重新来过的按钮。最后总觉得美中不足,只有向下一页的翻动,如果想返回上一页的话,还要重新来过,为此我又新增加多一个按钮,按钮的动画我还是选择了Javascript来控制。
首先看看效果图
demo地址:http://zhuyingyan.github.com/myfavourite/update.html
这里我还弄的比较简单,还没有加上内容。
首先是html,
?
我把原本的内容页的div结构,改成ul,li结构。不过这里有点不太合理的地方就是我把页数在html中反过来写了,就是说我最后一页的div层放在第一个li里面。这个往后再做修改,这也关联到javascript的修改。
接着是css代码,跟之前的css并没有太大改动,主要是按钮的位置做了调整,还有使用javascript增加class的class定义。
最后是javascript代码:
最后,小小的总结,由于思路有限,先是写这么多,之后希望能够努力拓展拓展,完善其中的内容。
首先看看效果图
demo地址:http://zhuyingyan.github.com/myfavourite/update.html
这里我还弄的比较简单,还没有加上内容。
首先是html,
?
接着是css代码,跟之前的css并没有太大改动,主要是按钮的位置做了调整,还有使用javascript增加class的class定义。
.panelclick{ margin-top:-150%; background:#fff; -webkit-transition:all 1.8s ease-in-out; -moz-transition:all 1.8s ease-in-out; -o-transition:all 1.8s ease-in-out; -ms-transition:all 1.8s ease-in-out; transition:all 1.8s ease-in-out; } #navigation .linkClick{ background:#000; color:#fff; }
最后是javascript代码:
var pageChange = (function(){ /** * listClickID 取得放着全部页面的ID号 * tagName 每个页面放于的标签 * i 这个比较重要是当前第i个页面,从0开始到length-1 * length 页面的个数 * nextPageId 下一页按钮的ID号 * again 重新来过按钮的ID号 * perviousPage上一页按钮的ID号 * * */ var listClickID,tagName,nextPageId,againId,perviousPageId; var listClick=document.getElementById(listClickID||"mylife").getElementsByTagName(tagName||"li"); var i=0,length=listClick.length; var nextPage=document.getElementById(nextPageId||"nextPage"); var again=document.getElementById(againId||"again"); var perviousPage=document.getElementById(perviousPageId||"perviousPage"); /** * init 获取下一页并加上className实现动画效果 */ var init=function(){ var id=this.id; if(i>=length){ return false; } var block=listClick[length-i-1]; i++; block.style.MozTransitionDelay="0s"; block.style.WebkitTransitionDelay="0s"; if(block.className.indexOf("panelclick")==-1) block.className+=" panelclick"; }; /** * restart 页面都从上往下回来,而且是有层次的一个接着一个,这里我就用了延时 */ var restart=function(){ i=0; var j=0; for(;i < length;i++){ var block=listClick[i]; console.log(block); if(block.className.indexOf("panelclick")!=-1) { block.className=block.className.replace(" panelclick",""); block.style.MozTransitionDelay=j+"s"; block.style.WebkitTransitionDelay=j+"s"; j++; } } j=0; i=0; }; /** * previous 获取上一页并删去className实现动画效果 */ var previous=function(){ if((length-i)>length-1){ return false; } var block=listClick[length-i]; console.log(block); if(block.className.indexOf("panelclick")!=-1) { block.className=block.className.replace(" panelclick",""); block.style.MozTransitionDelay="0s"; block.style.WebkitTransitionDelay="0s"; } i=i-1; }; return { setListClick:function(listID){ listClickID=listID; return this; }, setTagName:function(tagname){ tagName=tagname; return this; }, setNextPageId:function(nid){ nextPageId=nid; return this; }, setAgainId:function(aid){ againId=aid; return this; }, setPerviousPageId:function(pid){ perviousPageId=pid; return this; }, /** * 加入事件绑定,实现相关键盘,鼠标点击效果 */ mouseEvent:function(){ var body=document.getElementsByTagName("body")[0]; var that=this; body.addEventListener("keydown",function(event){ console.log(event.keyCode); if(event.keyCode==37){ previous(); } else if(event.keyCode==39){ init(); } }); perviousPage.addEventListener("click",function(event){ previous(); }); nextPage.addEventListener("click",function(event){ init(); }); again.addEventListener("click",function(event){ restart(); }); return this; } } }(pageChange || {})); pageChange.mouseEvent();
最后,小小的总结,由于思路有限,先是写这么多,之后希望能够努力拓展拓展,完善其中的内容。
相关文章推荐
- 使用css3中transition的页面切换
- 使用css3属性transition实现页面滚动
- jQuery Mobile 页面切换动画的使用(data-transition)
- jQuery Mobile 页面切换动画的使用(data-transition)
- vue页面切换过渡transition效果
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- JS动态切换图片(一个页面中可多次使用)
- css3 的transition-property webkitTransform (页面不显示的个人总结) 第十节
- 使用AngularJS实现可伸缩的页面切换的方法
- 页面切换效果overridePendingTransition的总结
- Android使用ActionBar和ViewPager切换页面
- C# 系统应用之使用Pancel控件同一窗体切换页面
- 安卓app页面跟随手指滑动而切换 ViewPager的使用 ViewPager+Fragment
- css3 transition hover图片样式切换
- CSS3 transition规范的实际使用经验
- Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
- Android中使用ViewPager实现屏幕页面切换和页面切换效果
- wow的使用 页面的切换
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController