www.gusucode.com > (带手机版数据同步)开锁换锁网站源码 设备服务行业网站织梦模板(demo264)源码程序 > (带手机版数据同步)开锁换锁网站源码 设备服务行业网站织梦模板(demo264)源码程序/www2/skin/js/zoom.js
(function(window,undefined){ var afx = { $afx: function(id){ return document.getElementById(id); }, getTags: function(obj,tag){ if(obj){ return obj.getElementsByTagName(tag); }else{ return false; } }, getIndex: function(obj,tag){ var nowLength = afx.getTags(obj,tag).length; for(var i=0;i<nowLength;i++){ obj[i].index = i; return obj[i]; } }, eListener: function(obj,event,fn){ fn == "" ? fn = function(){} : fn; if(window.addEventListener){ console.log(obj); obj.addEventListener(event,fn,false); }else{ obj.attachEvent("on"+event,fn); } }, conHeightAuto: function(){ // 计算左右的高度 var conLeft = afx.$afx("contentLeft").clientHeight, conRight = afx.$afx("contentRight").clientHeight, con = afx.$afx("content"); if(conLeft > conRight){ con.style.height = conLeft + "px"; }else{ con.style.height = conRight + "px"; } }, getSortFun: function(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new Function('a', 'b', 'return a.' + sortBy + ordAlpah + 'b.' + sortBy + '?1:-1'); return sortFun; }, imgZoom: function(ele,parentEle,parentsEle,index){ /* * ele:点击元素 * parentEle:父级元素 * parentsEle:祖父级元素 * index:索引值 */ var picShow = "<div id='picShow'><div class='pic_show_box'><div id='pic_quit'></div><a href='javascript:;' title='上一张' id='lbtn'></a><a href='javascript:;' title='下一张' id='rbtn'></a><img width='593' height='442' alt='' /><p><a href='' id='picLink'></a></p></div></div>"; var _this = ele,liIndex,liEle,picUrl,picShowBod,liLength,_val,_href,picShowText,lbtn,rbtn; liIndex = index; liEle = afx.getTags(parentsEle,parentEle)[liIndex]; // 获取当前点击的那个元素 var picShowBox = document.createElement("div"); picShowBox.innerHTML = picShow; document.body.appendChild(picShowBox); // 插入到页面中 picShowBox = afx.$afx("picShow"); picShowBod = afx.getTags(picShowBox,"img")[0]; // 获取放大的图片元素 picShowText = afx.$afx("picLink"); liLength = afx.getTags(parentsEle,parentEle).length; lbtn = afx.$afx("lbtn"); rbtn = afx.$afx("rbtn"); function setDate(liEle){ picUrl = afx.getTags(liEle,"img")[0].getAttribute("src"); _href = afx.getTags(liEle,"a")[0].getAttribute("href"); _val = afx.getTags(liEle,"a")[1].innerHTML || afx.getTags(liEle,"a")[0].innerHTML; } function addData(picUrl,_val,_href){ picShowBod.setAttribute("src",picUrl); picShowText.innerHTML = _val; picShowText.setAttribute("href",_href); } setDate(liEle); addData(picUrl,_val,_href); lbtn.onclick = function(){ if(liIndex>0){ liEle = afx.getTags(parentsEle,parentEle)[liIndex-1]; liIndex--; }else{ liEle = afx.getTags(parentsEle,parentEle)[liLength-1]; liIndex = liLength-1; } setDate(liEle); addData(picUrl,_val,_href); listImgZoom("picShow","593"); } rbtn.onclick = function(){ if(liIndex<liLength-1){ liEle = afx.getTags(parentsEle,parentEle)[liIndex+1]; liIndex++; }else{ liEle = afx.getTags(parentsEle,parentEle)[0]; liIndex = 0; } setDate(liEle); addData(picUrl,_val,_href); listImgZoom("picShow","593"); } afx.$afx("pic_quit").onclick = function(){ picShowBox.parentNode.removeChild(picShowBox); } } } window.afx = afx; 'afx' in window || (window.afx = afx); })(window); function imgZoomRun(box,tag1,name,tag2){ var pro = afx.$afx(box); var pEle = afx.getTags(pro,tag1); var pArr = []; // 存放类名是prod-zoom的p标签 for(var i=0; i<pEle.length; i++){ if(pEle[i].className == name){ // 筛选 pArr.push(pEle[i]); } } for(var j=0;j<pArr.length;j++){ pArr[j].index = j; pArr[j].onclick = function(){ afx.imgZoom(this,tag2,pro,this.index); listImgZoom("picShow","593"); } } } function setInto(a){ var returnHtml = ""; for(var b=0; b< a.innerHTML.length; b++){ returnHtml += "<font>" + a.innerHTML[b] + "</font>"; } a.innerHTML = returnHtml; } function nextPrev(_this,numb){ if(_this.previousSibling){ _this.previousSibling.style.top = numb + "px"; } if(_this.nextSibling){ _this.nextSibling.style.top = numb + "px"; } } function newsFontMove(newsId){ var news5 = afx.$afx(newsId); var news5li = afx.getTags(news5,"li"); for(var i=0; i<news5li.length; i++){ var newsLiA = afx.getTags(news5li[i],"a")[0]; setInto(newsLiA); var newsFont = afx.getTags(newsLiA,"font"); for(var c=0; c<newsFont.length; c++){ newsFont[c].index = c; newsFont[c].style.position = "relative"; newsFont[c].onmouseover = function(){ var _this = this; _this.style.top = "-8px"; nextPrev(_this,"-5"); } newsFont[c].onmouseout = function(){ var _this = this; _this.style.top = "6px"; nextPrev(_this,"4"); setTimeout(function(){ _this.style.top = "0"; nextPrev(_this,"0"); },100); } } } } function colorChange(newsId){ var news4 = afx.$afx(newsId); var news4Li = afx.getTags(news4,"li"); for(var n=0; n<news4Li.length; n++){ if(n%2 == 0){ news4Li[n].className += "news4-bg"; } } } // 多级分类 function LeftType(arr,ul,id){ this.parentDom = afx.$afx(ul); // 传入的ul#id this.allDom = ""; // 最后输入到页面的dom元素 arr.sort(afx.getSortFun('desc', 't_order')); var _0 = new Array(), _1 = new Array(), _2 = new Array(), _3 = new Array(), _4 = new Array(); for(var i=0; i<arr.length; i++){ switch(arr[i].t_depth){ case "0": _0.push(arr[i]); break; case "1": _1.push(arr[i]); break; case "2": _2.push(arr[i]); break; case "3": _3.push(arr[i]); break; case "4": _4.push(arr[i]); break; } } this.allArr = [_0,_1,_2,_3,_4]; this.domPrint(_0); // 先把一级分类输出到页面 this.parentDom.innerHTML = this.allDom; for(var z=0; z<this.allArr.length-1; z++){ this.allDomArr(this.allArr[z+1],this.allArr[z]); } if(id !=0){ this.pageDisplay(id,arr); var nowDOM = afx.$afx(id); afx.getTags(nowDOM,"a")[0].className = "on"; for(var b=0; b<nowDOM.childNodes.length; b++){ nowDOM.childNodes[b].style.display = "block" } } } LeftType.prototype = { allDomArr: function(subArr,parentArr){ // 根据层级(t_depth)绑定dom元素 for(var x=0; x<subArr.length; x++){ for(var y=0; y<parentArr.length; y++){ if(subArr[x].t_pid == parentArr[y].t_id){ var subDom = ""; subDom += "<li id='"+ subArr[x].t_id +"'><a href='"+ subArr[x].t_url +"' title='"+ subArr[x].t_name +"'>" + subArr[x].t_name + "</a></li>"; var subUL = document.createElement("ul"); var domId = parentArr[y].t_id.toString(); subUL.innerHTML = subDom; afx.$afx(domId).appendChild(subUL); } } } }, domPrint: function(domArr){ // 根据传递的数组生成dom元素 var domTags = ""; for(var j=0; j<domArr.length; j++){ domTags += "<li id='"+domArr[j].t_id+"'><a href='"+ domArr[j].t_url +"' title='"+ domArr[j].t_name +"'>"+domArr[j].t_name + "</a></li>"; } this.allDom += domTags; }, pageDisplay: function(id,arr){ // 根据当前id显示dom元素 var tempId, parentDOM, thisId = id; // 当前元素的id function idShow(thisId){ for(var j=0; j<arr.length; j++){ if(thisId == arr[j].t_id){ // 找到当前元素 tempId = arr[j].t_pid; // 找到父元素 parentDOM = afx.$afx(thisId).parentNode; var parentDOMs = parentDOM.parentNode; // 获取同级的ul显示 parentDOM.style.display = "block"; for(var b=0; b<parentDOMs.childNodes.length; b++){ if(parentDOMs.childNodes[b].nodeType == 1){ parentDOMs.childNodes[b].style.display = "block"; } } parentDOM.className += "show"; tempId != 1 ? idShow(tempId) : ""; // 到第一层返回 } } } idShow(thisId); } } // 入场动画 function enterAnimation(className){ if(document.querySelector){ var boxDOM = document.querySelector("ul."+className); var showLi = afx.getTags(boxDOM,"li"); for(var i=0; i<showLi.length; i++){ showLi[i].className += "show-animation"; } } } // 图片缩放 function listImgZoom(dom,w){ var listBox = afx.$afx(dom); var listImgDOM = afx.getTags(listBox,"img"), imgWidth = w, imgHeight = Math.round(imgWidth * 0.75); for(var i=0; i<listImgDOM.length; i++){ var img = new Image(); img.src = listImgDOM[i].src; if(img.height/img.width > 0.75){ // 高了,窄了 listImgDOM[i].height=imgHeight; listImgDOM[i].width=imgHeight/img.height * img.width; listImgDOM[i].style.padding = 0; listImgDOM[i].style.paddingLeft = Math.round((imgWidth-img.width/img.height * imgHeight)/2) + "px"; listImgDOM[i].style.paddingRight = Math.round((imgWidth-img.width/img.height * imgHeight)/2) + "px"; }else if(img.height/img.width < 0.75){ // 宽了,矮了 listImgDOM[i].width = imgWidth; listImgDOM[i].height = imgWidth/img.width * img.height; listImgDOM[i].style.padding = 0; listImgDOM[i].style.paddingTop = Math.round((imgHeight-listImgDOM[i].height)/2) + "px"; listImgDOM[i].style.paddingBottom = Math.round((imgHeight-listImgDOM[i].height)/2) + "px"; }else{ listImgDOM[i].height=imgHeight; listImgDOM[i].width=imgWidth; } } }