使用Require.js封装原生js轮播图的实现代码
index.html页面:
require.js封装轮播图 *{ margin:0; padding:0; list-style:none; } #banner{ width:830px; height:440px; border:solid1px; margin:50pxauto; position:relative; overflow:hidden; } #bannerul{ position:absolute; left:0; top:0; } #bannerulli{ width:830px; height:440px; float:left; } #bannerp{ position:absolute; left:50%; bottom:10px; margin-left:-30px; } #bannerpspan{ display:block; float:left; width:15px; height:15px; margin-right:6px; background:#ccc; border-radius:50%; } #bannerp.on{ background:red; }
get.js代码如下:
define(function(require,exports,module){
exports.getStyle=function(obj,name){
if(obj.currentStyle){
returnobj.currentStyle[name];
}else{
returngetComputedStyle(obj,false)[name];
};
};
});
init.js代码如下
require(['slider'],function(mod){
mod.slide();
});
slider.js代码如下
define(function(require,exports,module){
varmove=require('StartMove');
varaBtn=document.getElementById('banner').getElementsByTagName('span');
varoUl=document.getElementById('banner').getElementsByTagName('ul')[0];
varaLi=oUl.children;
//三张图片所占的宽度,length返回的是字符串中的字符数
oUl.style.width=aLi.length*aLi[0].offsetWidth+'px';
exports.slide=function(){
for(vari=0;i
StartMove.js代码如下
define(function(require,exports,module){
varget=require('get');
exports.move=functionmove(obj,json,complete){
clearInterval(obj.timer);
varcomplete=complete||{};
complete.dur=complete.dur||1000;
complete.easing=complete.easing||'ease-out';
varcount=parseInt(complete.dur/30);//总次数
varstart={};//{width:300,height:300}
vardis={};
//{width:300,height:300}
for(varnameinjson){
start[name]=parseFloat(get.getStyle(obj,name));
dis[name]=json[name]-start[name];
}
varn=0;//当前步数
obj.timer=setInterval(function(){
n++;
for(varnameinjson){
vara=n/count;
switch(complete.easing){
case'linear':
varcur=start[name]+a*dis[name];
break;
case'ease-in':
varcur=start[name]+Math.pow(a,3)*dis[name];
break;
case'ease-out':
vara=1-n/count;
varcur=start[name]+(1-Math.pow(a,3))*dis[name];
break;
};
if(name=='opacity'){
obj.style[name]=cur;
obj.style.filter='alpha('+cur*100+')';
}else{
obj.style[name]=cur+'px';
};
};
if(n==count){
clearInterval(obj.timer)
complete.fn&&complete.fn();
};
},30);
};
});
以上所述是小编给大家介绍的使用Require.js封装原生js轮播图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!