wap圖片滾動(dòng)特效無(wú)css3元素純js腳本編寫
手機(jī)圖片滑動(dòng)切換,網(wǎng)上有很多這樣的例子,但都借助于其他組件,讓代碼混亂的不行;還有就是用到css3里的 transform:translate(x,y);移動(dòng)元素,不過(guò)發(fā)現(xiàn)在不支持css3的設(shè)備上馬上完蛋了,所以下定決心自己做一個(gè),誰(shuí)知出現(xiàn)了很多的問(wèn)題,其中最重要的是給圖片加鏈接,網(wǎng)頁(yè)中的上下滾動(dòng)條不能在拖動(dòng)圖片的時(shí)候滾動(dòng),并且不能兼容pc機(jī)器上的拖動(dòng);在這里就簡(jiǎn)單介紹一下遇到的問(wèn)題和解決的方法;
問(wèn)題一:給圖片加上鏈接后,在拖動(dòng)的時(shí)候總是跳到其他頁(yè)面
問(wèn)題根源主要是不能判斷是點(diǎn)擊還是拖動(dòng),手機(jī)事件一般順序是 touchstart-》mousedown-》mousemove-》touchmove-》mouseup-》touchend-》click,根據(jù)不同手機(jī)可能會(huì)有不同。觸屏手機(jī)的事件一般都用 touchstart -》 touchmove -》 touchend -》 click,click事件是最后執(zhí)行的,當(dāng)我們有touchstart,touchmove,touchend處理完后,如果不進(jìn)行return或取消默認(rèn)就會(huì)觸發(fā)click事件,這樣網(wǎng)頁(yè)就跳走了,解決辦法是記錄touchstart的坐標(biāo)點(diǎn)和touchmove的坐標(biāo)點(diǎn),根據(jù)兩個(gè)坐標(biāo)點(diǎn)算出觸點(diǎn)是否移動(dòng)過(guò),其中值得關(guān)注的是事件的Event參數(shù),觸屏一般是 event.touches,event.targetTouches,event.changedTouches。我在測(cè)試當(dāng)中發(fā)現(xiàn)者三個(gè)參數(shù)的值時(shí)一樣的,不過(guò)值得注意的是touchend事件不會(huì)得到觸點(diǎn)坐標(biāo)(也或許是設(shè)備問(wèn)題),在移動(dòng)的時(shí)候touchmove會(huì)不斷出發(fā),有時(shí)候touchmove會(huì)不觸發(fā),其中就是瀏覽器自帶一下功能把觸點(diǎn)(或鼠標(biāo))脫離了選中的元素,比如上時(shí)間按住會(huì)出現(xiàn)菜單,(pc上圖片就會(huì)生成一個(gè)可以拖動(dòng)的縮略圖),這樣就要在touchstart(mousedown)的時(shí)候先 event.preventDefault();取消默認(rèn)。
問(wèn)題二:網(wǎng)頁(yè)中的上下滾動(dòng)條不能在拖動(dòng)圖片的時(shí)候滾動(dòng)
相信這個(gè)問(wèn)題只要制作過(guò)得都會(huì)遇到,其實(shí)主要是在移動(dòng)(touchmove,mousemove)的時(shí)候取消了默認(rèn)事件event.preventDefault(),在這里我們需要做的是,是否移動(dòng)獲得觸點(diǎn)和開(kāi)始的觸點(diǎn)是否一致,如果一致就直接返回,還要算出是移動(dòng)的x軸多一點(diǎn)還是y軸移動(dòng)的多一點(diǎn),這樣我們就可以做左右滑動(dòng)的時(shí)候取消默認(rèn),在上學(xué)的時(shí)候不取消;
問(wèn)題三: 并且不能兼容pc機(jī)器上的拖動(dòng)
這是因?yàn)樵诮壎ㄊ录臅r(shí)候不能完全考慮事件名稱是touchstart還是mousedown ,從網(wǎng)上搜了一下,感覺(jué)做的不做,就直接抄過(guò)來(lái)了
this.eventName={ touchstart:'touchstart', touchmove:'touchmove', touchend:'touchend', } 在做判斷 if(!device){ this.eventName.touchstart='mousedown'; this.eventName.touchmove='mousemove'; this.eventName.touchend='mouseup'; } dom.addEventListener(this.eventName.touchstart,handleEvent,false);
大概是這個(gè)意思,根據(jù)設(shè)備不同綁定不同的事件
其實(shí)還碰到了很多的問(wèn)題,就不一一說(shuō)明了
不多說(shuō)了,直接把代碼貼出來(lái)了,如果有什么不太好的地方,還請(qǐng)多多包含和提出意見(jiàn)
<!doctype html> <html> <head> <meta charset="utf-8"> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" /> <meta content="yes" name="apple-mobile-web-app-capable" /> <meta content="black" name="apple-mobile-web-app-status-bar-style" /> <meta content="telephone=no" name="format-detection" /> <title></title> <style type="text/css"> html,body,*{ margin: 0; padding: 0; border: 0;} #wapListImage1, #wapListImage{width: 100%; overflow: hidden; height: auto; cursor: move; zoom:1; position: relative;} #wapListImage1 ul, #wapListImage1 ul li, #wapListImage1 ul, #wapListImage ul li{ list-style: none;} #wapListImage1 ul, #wapListImage ul{width: 99999px;} #wapListImage1 ul li, #wapListImage ul li{ float: left;} #wapListImage ul li a img:focus, #wapListImage ul li a img:checked, #wapListImage ul li a img, #wapListImage ul li a img:active, #wapListImage ul li a,#wapListImage ul li a:active{cursor: move;} #wapListImage dl{ position: absolute; bottom: 10px; right: 0;} #wapListImage dl span{overflow: hidden;width: 10px; height: 10px; background-color: #900; display: inline-block;} #wapListImage dl span.selected{ background-color: #000;} </style> </head> <body> <div id="k"> <div id="wapListImage"> <ul> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd" target="_black"><img src="http://file25.mafengwo.net/M00/37/74/wKgB4lM9Hb-ARjpJAAOsX46Kq9w39.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/F2/06/wKgB4lNaHHCASXmDAAFtZsUxuwQ66.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/2B/EE/wKgB4lNwdpeAbvZiAAWcFRXe2Po83.gonglve.w690.jpeg"></a></li> <!-- <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd" target="_black"><img src="http://file25.mafengwo.net/M00/37/74/wKgB4lM9Hb-ARjpJAAOsX46Kq9w39.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/F2/06/wKgB4lNaHHCASXmDAAFtZsUxuwQ66.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/2B/EE/wKgB4lNwdpeAbvZiAAWcFRXe2Po83.gonglve.w690.jpeg"></a></li> --> </ul> <dl> <span class="selected">1</span> <span>2</span> <span>3</span> <!-- <span>4</span> <span>5</span> <span>6</span> --> </dl> </div> </div> <div style="height:200px;"></div> <div id="wapListImage1"> <ul> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd" target="_black"><img src="http://file25.mafengwo.net/M00/37/74/wKgB4lM9Hb-ARjpJAAOsX46Kq9w39.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/F2/06/wKgB4lNaHHCASXmDAAFtZsUxuwQ66.gonglve.w690.jpeg"></a></li> <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" hrefto="ddd"><img src="http://file25.mafengwo.net/M00/2B/EE/wKgB4lNwdpeAbvZiAAWcFRXe2Po83.gonglve.w690.jpeg"></a></li> </ul> </div> <script type="text/javascript"> ;(function(w,d){ var device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())); function WapImage(){ this.options={ dom: null, speed:200, isupdate:true, time:3000, leftOrright:'left', isfor:false, callBack:function(){} }, this.eventName={ touchstart:'touchstart', touchmove:'touchmove', touchend:'touchend', }, this.point={ x:5, y:5, pageX1:0, pageX2:0, pageY1:0, pageY2:0 }, this.page={ bodyWidth:320, domUL:null, liList:null, index: 0, flag:false, sTime:0, eTime:0, isDown:false, mleft:0, back:30, moveId:[], nextId:null, prevId:null, isdom:false }, this.Event={ handleEvent: function(event,lib){ event = event ? event : window.event; // console.log(event.type) switch(event.type){ case "touchstart": var touch = event.touches[0]; case "mousedown": if(lib.page.isDown) return; lib.page.isDown=true; lib.page.sTime=lib.page.eTime=new Date().getTime(); lib.Event.stop(lib,lib); if(event.type=="mousedown"){ touch = event; event.preventDefault(); } lib.point.pageX1 = lib.point.pageX2 = touch.pageX; lib.point.pageY1 = lib.point.pageY2 = touch.pageY; lib.page.mleft = parseFloat(lib.page.domUL.style.marginLeft); lib.page.mleft = lib.page.mleft ? lib.page.mleft : 0; break; case "touchmove": var touch = event.touches[0]; case "mousemove": if(!lib.page.isDown) return; if(event.type=="mousemove"){ touch = event; } lib.point.pageX2 = touch.pageX; lib.point.pageY2 = touch.pageY; if(lib.point.pageX1==lib.point.pageX2){ event.preventDefault(); return false; } var changeX = lib.point.pageX1 - lib.point.pageX2; var changeY = lib.point.pageY1 - lib.point.pageY2; if(Math.abs(changeX)>Math.abs(changeY)) {//左右事件 event.preventDefault(); lib.page.domUL.style.marginLeft=lib.page.mleft-changeX+'px'; if(parseFloat(lib.page.domUL.style.marginLeft)<= -(lib.page.liList.length-1)*lib.page.bodyWidth){ lib.page.domUL.style.marginLeft= -(lib.page.liList.length-1)*lib.page.bodyWidth+'px'; lib.page.mleft=-(lib.page.liList.length-1)*lib.page.bodyWidth; } if(parseFloat(lib.page.domUL.style.marginLeft)>0){ lib.page.domUL.style.marginLeft='0px'; lib.page.mleft=0; } }else if(Math.abs(changeY)>Math.abs(changeX)){//上下事件 }else{//長(zhǎng)按或點(diǎn)擊 } break; case "mouseup": case "touchend": if(!lib.page.isDown) return; lib.page.eTime=new Date().getTime(); lib.page.mleft = parseFloat(lib.page.domUL.style.marginLeft); lib.page.mleft = lib.page.mleft ? lib.page.mleft : 0; var changeX = lib.point.pageX1 - lib.point.pageX2; var changeY = lib.point.pageY1 - lib.point.pageY2; if(Math.abs(changeX)>Math.abs(changeY)) {//左右事件 event.preventDefault(); lib.Event.move.call(this,lib); }else if(Math.abs(changeY)>Math.abs(changeX)){//上下事件 lib.Event.move.call(this,lib); }else{//長(zhǎng)按或點(diǎn)擊 if((lib.page.eTime - lib.page.sTime) > 300) {//長(zhǎng)按 }else{//點(diǎn)擊 if(event.button==0 || event.type=='touchend'){ var a = lib.page.liList[lib.page.index].getElementsByTagName('a')[0]; if(typeof a.getAttribute('target')=='object'){ w.location=a.getAttribute('hrefto') }else{ w.open(a.getAttribute('hrefto')); } } } } lib.page.isDown=false; break; default: break; } }, position: function(lib,index){ // if(index==undefined){ // lib.page.domUL.style.marginLeft= -(lib.page.index*lib.page.bodyWidth) +'px'; // }else{ // lib.page.domUL.style.marginLeft= -(index*lib.page.bodyWidth) +'px'; // lib.page.index=index; // } if(!lib.options.isfor){ if(index==undefined){ lib.page.domUL.style.marginLeft= -(lib.page.index*lib.page.bodyWidth) +'px'; }else{ lib.page.domUL.style.marginLeft= -((index-1)*lib.page.bodyWidth) +'px'; lib.page.index=index-1; } lib.options.callBack({"index":parseInt(lib.page.liList[lib.page.index].getAttribute('index'))+1}); }else{ if(index==undefined){ lib.page.domUL.style.marginLeft= -lib.page.bodyWidth +'px'; }else{ lib.page.domUL.style.marginLeft= -lib.page.bodyWidth +'px'; while(true){ if(parseInt(index)==parseInt(lib.page.liList[1].getAttribute('index'))+1){ break; } lib.page.domUL.insertBefore(lib.page.liList[lib.page.liList.length-1],lib.page.liList[0]); } } lib.options.callBack({"index":parseInt(lib.page.liList[1].getAttribute('index'))+1}); } }, stop:function(lib){ for(var i =0;i<lib.page.moveId.length;i++){ clearInterval(lib.page.moveId[i]); } lib.page.moveId=[]; }, start:function(lib){ if(lib.options.isupdate){ lib.page.moveId[lib.page.moveId.length] = setInterval(function(){ if(lib.options.leftOrright=='left'){ lib.Event.next(lib,lib); }else{ lib.Event.prev(lib,lib); } },lib.options.time); } }, next:function(lib){ // console.log(lib.page.prevId.length+"nextId") // for (var n=0;n<lib.page.prevId.length;n++) { // // clearInterval(lib.page.prevId[n]); // }; // lib.page.prevId=[]; clearInterval(lib.page.prevId); lib.page.prevId=null; // var left = (lib.page.bodyWidth-Math.abs(lib.point.pageX1-lib.point.pageX2))/lib.options.speed; var yu = Math.abs(parseInt(lib.page.domUL.style.marginLeft)); while(true){ if(yu==0){ yu=lib.page.bodyWidth; break; }else if(yu<0){ yu= Math.abs(yu); break; } yu=yu-lib.page.bodyWidth } // var left = (lib.page.bodyWidth-Math.abs(parseFloat(lib.page.domUL.style.marginLeft)%lib.page.bodyWidth))/lib.options.speed; var left = yu/lib.options.speed; var c = 0; if(lib.page.index==lib.page.liList.length-1){ lib.page.flag=false; return; } clearInterval(lib.page.nextId); lib.page.nextId = window.setInterval(function(){ // lib.Event.stop(lib,lib); // if(lib.page.moveId==null){ // clearInterval(id); // } c=c+5; lib.page.domUL.style.marginLeft= (parseFloat(lib.page.domUL.style.marginLeft)-left*5)+'px'; // console.log("next"+lib.page.domUL.style.marginLeft); if(c>=lib.options.speed || parseFloat(lib.page.domUL.style.marginLeft)<= -(lib.page.liList.length-1)*lib.page.bodyWidth ){ if(parseFloat(lib.page.domUL.style.marginLeft)<= -(lib.page.liList.length-1)*lib.page.bodyWidth){ lib.page.domUL.style.marginLeft= -(lib.page.liList.length-1)*lib.page.bodyWidth+'px'; } clearInterval(lib.page.nextId); // for(var n=0;n=lib.page.nextId.length;n++){ // clearInterval(lib.page.nextId[0]); // } // lib.page.nextId=[]; lib.page.index++; lib.page.flag=false; lib.Event.domUpdate.call(this,lib,'r'); if(lib.page.moveId.length==0){ lib.Event.start(lib,lib); } } },5); }, prev:function(lib){ // console.log(lib.page.nextId.length+"nextId") // for(var n=0;n=lib.page.nextId.length;n++){ // // clearInterval(lib.page.nextId[0]); // } clearInterval(lib.page.nextId); lib.page.nextId=null; // lib.page.nextId=[]; // var left = (lib.page.bodyWidth-Math.abs(lib.point.pageX1-lib.point.pageX2))/lib.options.speed; // var left = (lib.page.bodyWidth-Math.abs(parseFloat(lib.page.domUL.style.marginLeft)%lib.page.bodyWidth))/lib.options.speed; var yu = Math.abs(parseInt(lib.page.domUL.style.marginLeft)); // console.log(yu+"----"+lib.page.domUL.style.marginLeft) while(true){ if(yu==0){ yu=lib.page.bodyWidth; break; }else if(yu<0){ yu= lib.page.bodyWidth-Math.abs(yu); break; } yu=yu-lib.page.bodyWidth } // var left = (lib.page.bodyWidth-yu)/lib.options.speed; var left = yu/lib.options.speed; var c = 0,id; if(lib.page.index==0){ lib.page.flag=false; return; } var ml = parseFloat(lib.page.domUL.style.marginLeft); clearInterval(lib.page.prevId); lib.page.prevId = window.setInterval(function(){ c=c+5; lib.page.domUL.style.marginLeft= (parseFloat(lib.page.domUL.style.marginLeft)+left*5)+'px'; // console.log(lib.page.domUL.style.marginLeft); if(c>=lib.options.speed || parseFloat(lib.page.domUL.style.marginLeft)>=0){ if(parseFloat(lib.page.domUL.style.marginLeft)>=0){ lib.page.domUL.style.marginLeft='0px'; } clearInterval(lib.page.prevId); // for (var n=0;n<lib.page.prevId.length;n++) { // clearInterval(lib.page.prevId[n]); // }; // lib.page.prevId=[]; lib.page.index--; lib.page.flag=false; lib.Event.domUpdate.call(this,lib,'l'); if(lib.page.moveId.length==0){ lib.Event.start(lib,lib); } } },5); }, move:function(lib){ if(lib.page.flag) return; lib.page.flag=true; if(Math.abs(lib.point.pageX1-lib.point.pageX2)<lib.page.back){ var h = Math.abs(Math.abs(parseFloat(lib.page.domUL.style.marginLeft))-Math.abs(lib.page.bodyWidth*lib.page.index)) h = h/70; var hi = 0; var hid; hid = window.setInterval(function(){ if(lib.point.pageX2>lib.point.pageX1){ lib.page.domUL.style.marginLeft = (parseFloat(lib.page.domUL.style.marginLeft) - h*5) +'px'; }else{ lib.page.domUL.style.marginLeft = (parseFloat(lib.page.domUL.style.marginLeft) + h*5) + 'px'; } hi=hi+5; if(hi>=70){ clearInterval(hid); lib.page.domUL.style.marginLeft= -(lib.page.index*lib.page.bodyWidth) +'px'; lib.page.flag=false; } },5); return; } if(lib.point.pageX1-lib.point.pageX2>0){ lib.Event.next.call(this,lib); }else if(lib.point.pageX2-lib.point.pageX1>0){ // console.log("===") lib.Event.prev.call(this,lib); } }, domUpdate: function(lib,type){ if(lib.page.isdom) return; lib.page.isdom=true; if(!lib.options.isfor){ var index = lib.page.liList[lib.page.index].getAttribute('index'); lib.options.callBack({"index":parseInt(index)+1}); lib.page.isdom=false; return; } if(type=='l'){ lib.page.domUL.insertBefore(lib.page.liList[lib.page.liList.length-1],lib.page.liList[0]); lib.page.domUL.style.marginLeft=-lib.page.bodyWidth+'px';//(parseFloat(lib.page.domUL.style.marginLeft)-lib.page.bodyWidth)+'px'; //lib.page.index++; }else if(type=='r'){ lib.page.domUL.appendChild(lib.page.liList[0]); lib.page.domUL.style.marginLeft=-lib.page.bodyWidth+'px';//(parseFloat(lib.page.domUL.style.marginLeft)+lib.page.bodyWidth)+'px'; //lib.page.index--; } lib.page.index=1; // console.log(lib.page.index) var index = lib.page.liList[lib.page.index].getAttribute('index'); lib.options.callBack({"index":parseInt(index)+1}); lib.page.isdom=false; } }; }; WapImage.prototype = { setoption: function(arg){ for(var i in this.options){ this.options[i]= arg[i] !== undefined ? arg[i] : this.options[i]; } if(!device){ this.eventName.touchstart='mousedown'; this.eventName.touchmove='mousemove'; this.eventName.touchend='mouseup'; } //return temp; }, bindEvent: function(){ var lib = this; this.page.domUL.addEventListener(this.eventName.touchstart,function(event){lib.Event.handleEvent.call(lib,event,lib);},false); w.addEventListener(this.eventName.touchmove,function(event){lib.Event.handleEvent.call(lib,event,lib);},false); w.addEventListener(this.eventName.touchend,function(event){lib.Event.handleEvent.call(lib,event,lib);},false); w.addEventListener('resize',function(){lib.init();},false); }, init:function(){ this.page.bodyWidth=document.body.clientWidth; this.page.liList= this.options.dom.getElementsByTagName('li'); this.page.domUL = this.options.dom.getElementsByTagName('ul')[0]; this.options.dom.style.width=this.page.bodyWidth+'px'; for(var i=0;i<this.page.liList.length;i++){ var item = this.page.liList[i]; var img = item.getElementsByTagName('img')[0]; item.setAttribute('index',i); item.style.width=this.page.bodyWidth+'px'; img.style.width = this.page.bodyWidth+'px'; } if(this.page.liList.length<3){ var length = this.page.liList.length; if(length==1){ this.page.domUL.appendChild(this.page.liList[0].cloneNode(true)); this.page.domUL.appendChild(this.page.liList[0].cloneNode(true)); }else{ for(var i=0;i<length;i++){ this.page.domUL.appendChild(this.page.liList[i].cloneNode(true)); } } this.page.liList= this.options.dom.getElementsByTagName('li'); } }, position:function(index){ this.Event.position.call(this,this,index); }, next:function(){ this.Event.next.call(this,this); }, prev:function(){ this.Event.prev.call(this,this); }, start: function(arg){ this.setoption(arg); this.init(); this.position(); this.bindEvent(); this.Event.domUpdate(this,'l'); this.Event.start(this); } }; var loaded=function(){ w.WapImage=new WapImage(); w.WapImages=new WapImage(); }; (function(){ if(d.body){ loaded(); }else{ if(d.addEventListener){ d.addEventListener( 'DOMContentLoaded', function(){ d.removeEventListener( 'DOMContentLoaded', arguments.callee, false ); loaded(); }, false ); }else if(d.attachEvent){ d.attachEvent( 'onreadystatechange', function(){ if( d.readyState === 'complete' ){ d.detachEvent( 'onreadystatechange', arguments.callee ); loaded(); } }); } } })(); })(window,document,undefined); window.onload = function(){ var obj = { dom:document.getElementById('wapListImage'), isupdate:true, time:3000, isfor:true, leftOrright:'left', callBack:function(obj){ var span = document.getElementById('wapListImage').getElementsByTagName('dl')[0].getElementsByTagName('span'); for(var k = 0;k<span.length;k++){ span[k].className=''; } span[obj.index-1].className='selected' // console.log(obj.index) } }; WapImage.start(obj); WapImage.position(2) var obj2 = { dom:document.getElementById('wapListImage1'), callBack:function(obj){ // console.log(obj.index) } }; WapImages.start(obj2); // var img = new w.WapImage(); // img.start(obj); } </script> </body> </html>
用法:
在頁(yè)面加載完成后
var obj = { dom:document.getElementById('wapListImage'),//dom元素 isupdate:true,//是否自動(dòng)切換 time:3000,//自動(dòng)切換的時(shí)間毫秒 isfor:true, //是否循環(huán)播放,即到最后一張是否直接轉(zhuǎn)入第一張,或到第一張直接轉(zhuǎn)入最后一張 leftOrright:'left',//像左側(cè)自動(dòng)切換還是像右側(cè)自動(dòng)切換 callBack:function(obj){//切換成功后回調(diào)函數(shù) 其實(shí)有index參數(shù)為當(dāng)前第幾張圖片 //自己處理 var span = document.getElementById('wapListImage').getElementsByTagName('dl')[0].getElementsByTagName('span'); for(var k = 0;k<span.length;k++){ span[k].className=''; } span[obj.index-1].className='selected' // console.log(obj.index) } }; WapImage.start(obj); WapImage.position(2)
如果一個(gè)也沒(méi)需要多個(gè)圖片切換效果可以再代碼中查找 var loaded=function()
在其中定義您需要個(gè)切換圖片個(gè)數(shù),并定出名字
如
w.WapImage=new WapImage();
w.WapImages=new WapImage();
在頁(yè)面加載完后就可以直接調(diào)用
WapImage.start()和WapImages.start()
- js實(shí)現(xiàn)按鈕控制帶有停頓效果的圖片滾動(dòng)
- JavaScript仿淘寶頁(yè)面圖片滾動(dòng)加載及刷新回頂部的方法解析
- 解析javascript瀑布流原理實(shí)現(xiàn)圖片滾動(dòng)加載
- js實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)時(shí)圖片滾動(dòng)停止的方法
- 原生javascript實(shí)現(xiàn)圖片滾動(dòng)、延時(shí)加載功能
- js圖片滾動(dòng)效果時(shí)間可隨意設(shè)定當(dāng)鼠標(biāo)移上去時(shí)停止
- JavaScript實(shí)現(xiàn)簡(jiǎn)單圖片滾動(dòng)附源碼下載
- js+div實(shí)現(xiàn)圖片滾動(dòng)效果代碼
- JS小功能(offsetLeft實(shí)現(xiàn)圖片滾動(dòng)效果)實(shí)例代碼
- JS簡(jiǎn)單的輪播的圖片滾動(dòng)實(shí)例
- js實(shí)現(xiàn)網(wǎng)站首頁(yè)圖片滾動(dòng)顯示
- JS實(shí)現(xiàn)的相冊(cè)圖片左右滾動(dòng)完整實(shí)例
相關(guān)文章
javascript高級(jí)程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測(cè)方法)
javascript高級(jí)程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測(cè)方法),需要的朋友可以參考下2012-08-08JS如何獲取指定范圍內(nèi)的隨機(jī)數(shù)含小數(shù)
這篇文章主要介紹了JS如何獲取指定范圍內(nèi)的隨機(jī)數(shù)含小數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12javascript 實(shí)現(xiàn) 秒殺,團(tuán)購(gòu) 倒計(jì)時(shí)展示的記錄 分享
這篇文章介紹了javascript 實(shí)現(xiàn) 秒殺,團(tuán)購(gòu) 倒計(jì)時(shí)展示的記錄方法,有需要的朋友可以參考一下2013-07-078個(gè)JavaScript中高階函數(shù)的運(yùn)用分享
高階函數(shù)是指以函數(shù)作為參數(shù)的函數(shù),并且可以將函數(shù)作為結(jié)果返回的函數(shù)。本文整理了8個(gè)JavaScript中高階函數(shù)的運(yùn)用,需要的可以參考一下2023-04-04SyntaxHighlighter語(yǔ)法高亮插件使用說(shuō)明
SyntaxHighlighter語(yǔ)法高亮插件使用說(shuō)明,需要的朋友可以參考下。2011-08-08Cropper.js進(jìn)階之裁剪后保存至本地實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Cropper.js進(jìn)階之裁剪后保存至本地實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05js阻止移動(dòng)端頁(yè)面滾動(dòng)的兩種方法
本文主要介紹了js阻止移動(dòng)端頁(yè)面滾動(dòng)的兩種方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01JS與HTML結(jié)合使用marquee標(biāo)簽實(shí)現(xiàn)無(wú)縫滾動(dòng)效果代碼
這篇文章主要介紹了JS與HTML結(jié)合使用marquee標(biāo)簽實(shí)現(xiàn)無(wú)縫滾動(dòng)效果代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07