本文阐述了JS工厂模式的发展。分享给大家参考,如下:
基于JS工厂模式的H5应用实现了旋转图片和滑动屏幕的功能,实现了基于SASS风格开发的文本大小自适应功能。
核心JS代码如下:
index.js
define(function(){ var self=null,start=null,move=null,end=null,handle=null,timer=null,left=0,x=0,startX=0,baseWidth=window.screen.width,//移动设备屏幕的宽度baseSize=baseWidth * 0.2,//滑动切换阈值横幅=文档。getelementbyid(' banner '),//获取横幅中心=document.getElementById('中心'),//获取中心ulList=文档。getelementsbytagname(' ul '),incBanner=document。getelementbyid(' incBanner '),incCenter=document。getelementbyid(' IncCenter ');var app={ init : function(){ self=this;start=self . touch start move=self . touch move end=self . touch end handle=self . addhandlerself。page init();self.bindTouch(横幅、开始、移动、结束);self.bindTouch(居中、开始、移动、结束);self.shiftBanner(横幅);},页面初始化:函数(){ for(var I=0;我的名字。风格。left=0 ' pxulList[I]。风格。宽度=3 *基础宽度' px ';} },bindTouch :函数(elem,handler1,handler2,handler3){ handle(elem,‘touch start’,handler 1);手柄(elem,“触摸移动”,处理器2);手柄(elem,“触摸结束”,处理器3);},touchStart :函数(事件){ var Touch=事件。touch[0];left=ParSeint(这个。风格。左);x=0;startX=0;touch.pageX//刚触摸时的坐标if(this==banner){ timer=clearInterval(计时器);} },touchMove :函数(事件){ //滑动过程var touch=事件。触摸[0];x=StartX-touch。PageX//滑动的距离这个。风格。left=left-x ' px ';},touchEnd :函数(事件){ //手指离开屏幕self.move(这个);self.moveAdjust(这个);自我暗示(这个);if(this==banner){ self。移位横幅(banner);} },移动:函数(elem){ var left tmp=left;//缓存触摸移动结束时的滑动位置艾伦。风格。左=左;if(x BaseSize){ elem。风格。left=left-baseWidth ' px ';} else if(x-BaseSize){ elem。风格。left=左基底宽度‘px’;} else { elem。风格。left=LeftTMp ' px} },moveAdjust :函数(elem){ left=parsent(elem。风格。left)if(left-baseWidth * 2){ left=-baseWidth * 2;艾伦。风格。left=left ' px} if(left 0){ left=0;艾伦。风格。left=left ' px} x=0;},表示:函数(elem){ if(elem==banner){ self。active class(IncBanner);} else if(elem==center){ self。活动类(IncCenter);} },activeClass :函数(elem){ var len=elem。孩子们。长度;for(var I=0;我透镜;i ) { elem.children[i].如果(左==0) { elem.children[0].else if(left==(-BaseWidth)){ elem .儿童.else if(left==(-2 * BaseWidth)){ elem .儿童.className=' active} },shiftBanner :函数(elem){ var t=new Date();var tmpLeft=ParSeint(elem。风格。左);timer=setInterval(function(){ if((tmpLeft==0)| |(tmpLeft==-baseWidth)){ elem。风格。left=tmpLeft-base width ' px ';} else if(tmpLeft==-2 *基底宽度){ elem。风格。left=0 ' px} tmpLeft=ParSeint(elem。风格。左);left=tmpLeft//控制台。日志(elem。风格。左);//控制台。对数(t);自我指示(横幅);},4000);},addHandler :函数(元素,类型,处理程序){ if(元素。addeventlistener){元素。addeventlistener(类型,处理程序,真);} else if(元素。attachevent){元素。attachevent(' on '类型,处理程序);} else { element[' on ' type]=handler;} } };返回{ init : function(){ app。init();} };});可以在浏览器中打开:https://iove1123.github.io/policy
项目源码见GitHub:https://GitHub。com/love 1123/policy
更多关于Java脚本语言相关内容还可查看本站专题: 《javascript面向对象入门教程》 、 《JavaScript错误与调试技巧总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript遍历算法与技巧总结》 及《JavaScript数学运算用法总结》
希望本文所述对大家Java脚本语言程序设计有所帮助。