function elemID(e) {return document.getElementById(e);};
var Content = {}
<body id="body"> <div class="layer" id="layer"> <!-- --> </div> </body>
editSiteLayer:function (content) { /** , - "layer" **/ if (!content) {var content = 'layer';} /** ** ** 18px - **/ var inWidth = window.innerWidth-18, /** **/ layerWidth = elemID(content).clientWidth; /** undefined **/ if (inWidth && layerWidth) { /** CSS float:left **/ elemID(content).style.cssFloat = 'left'; /** ** - ** **/ elemID(content).style.marginLeft = (inWidth/2)-(layerWidth/2)+'px'; } }
<body id="body"> <div class="cloud" id="cloud"> <div class="cloud-layer" id="cloud-layer"> <em class="cloud-contaner" id="cloudpage__ID_"> </em> </div> </div> </body>
.cloud{ display:block; padding:0; margin:0; position:fixed; top:0; left:0; right:0; bottom:0; background: rgba(0, 0, 0, 0.795); z-index:3; overflow:auto; }
.cloud .cloud-layer{ position:relative; float:left; width:720px; margin:0; padding:0; z-index:4; }
var photoInfo = []; photoInfo[0] = {'id':5478,'name':' №1','desc':' №1','link':'1347690631.jpg'}; photoInfo[1] = {'id':4198,'name':' №2','desc':' №2','link':'1347691505.jpg'}; photoInfo[2] = {'id':7596,'name':' №3','desc':' №3','link':'1347691550.jpg'}; photoInfo[3] = {'id':98637,'name':' №4','desc':' №4','link':'1347691521.jpg'};
/** * cloudNav() cloudShow() * **/ _cloudNav:function (gid) { if (photoInfo) { var num, prev, next, info, len = photoInfo.length; if (len > 0) { for(var i=0; i<len; i++) { if (photoInfo[i].id == gid) { current = i; info = photoInfo[i]; if (len > 1 && (len-1) > i) {next = photoInfo[i+1].id;} if (len > 1 && i > 0) {prev = photoInfo[i-1].id;} num = i+1; } } } return {"len":len,"num":num,"prev":prev,"current":gid,"next":next,"info":info}; } }, /** * cloudShow() , * gid - **/ cloudShow:function (gid) { /** , **/ var arrNav = Content._cloudNav(gid); if (arrNav && arrNav.info) { /** **/ if (arrNav.prev !== undefined) {ContentPointPrev = arrNav.prev;} else {ContentPointPrev = null;} if (arrNav.next !== undefined) {ContentPointNext = arrNav.next;} else {ContentPointNext = null;} /** , -, **/ if (elemID('body').style.overflowY != 'hidden') { elemID('body').style.overflowX = 'hidden'; elemID('body').style.overflowY = 'hidden'; } /** - **/ if (!elemID('cloud')) { /** "cloud" **/ var box = document.createElement('div'); box.className = 'cloud'; box.id = 'cloud'; elemID('body').appendChild(box); /** "cloud" - **/ var cloudbox = document.createElement('div'); cloudbox.className = 'cloud-layer'; cloudbox.id = 'cloud-layer'; elemID('cloud').appendChild(cloudbox); /** "cloud" // **/ var navbox = document.createElement('div'); navbox.id = 'cloud-nav'; elemID('cloud').appendChild(navbox); /** **/ Content.editSiteLayer('cloud-layer'); /** - EM **/ } else { var ems = elemID('cloud').getElementsByTagName('EM') if (ems.length > 0) { for(var i=0; i<ems.length; i++) { ems[i].style.display = 'none'; } } } /** **/ elemID('cloud-nav').innerHTML = ''; /** - **/ if (!elemID('cloudpage_'+gid)) { var contentbox = document.createElement('em'); contentbox.className = 'cloud-contaner'; contentbox.id = 'cloudpage_'+gid; elemID('cloud-layer').appendChild(contentbox); var html = '<div class="cloud-title">'+ '<div class="cloud-name">'+ ' '+arrNav.num+' '+arrNav.len+ '</div>'+ '<div class="cloud-close" onclick="return Content.cloudClose();"> </div>'+ '</div>'+ '<div class="cloud-body">'+ '<p><img onclick="'+(arrNav.next !== undefined ? 'return Content.cloudShow('+arrNav.next+')' : 'return Content.cloudClose();')+'" src="images/'+arrNav.info.link+'" alt="" /></p>'+ '<div class="more-button" onclick="Content.Slide(this, {point:\'next\', hide:\' \', show:\' \'})">'+ ' '+ '</div>'+ '<span style="display:none;">'+ '<p>'+arrNav.info.name+'</p>'+ '<p>'+arrNav.info.desc+'</p>'+ '<p>'+lorem[0]+'</p>'+ '<p>'+lorem[1]+'</p>'+ '<p>'+lorem[0]+'</p>'+ '<p>'+lorem[1]+'</p>'+ '<p>'+lorem[0]+'</p>'+ '<p>'+lorem[1]+'</p>'+ '</span>'+ '</div>'; elemID('cloudpage_'+gid).innerHTML = html; /** **/ } else { elemID('cloudpage_'+gid).style.display = 'block'; } /** **/ var navi = '<div class="cloudnavclose" onclick="return Content.cloudClose();"></div>'; if (arrNav.prev !== undefined) {navi+= '<div onclick="return Content.cloudShow('+arrNav.prev+')" class="cloudnavprev"></div>';} if (arrNav.next !== undefined) {navi+= '<div onclick="return Content.cloudShow('+arrNav.next+')" class="cloudnavnext"></div>';} elemID('cloud-nav').innerHTML = navi; /** , **/ ContentShow = true; /** **/ elemID('cloud').style.display = 'block'; } },
/** cloudClose() **/ cloudClose:function () { /** **/ elemID('cloud').style.display = 'none'; /** **/ elemID('body').style.overflowX = 'auto'; elemID('body').style.overflowY = 'auto'; /** **/ ContentShow = null; }
/** * init() **/ init:function () { /** **/ Content.editSiteLayer('layer'); /** **/ window.onresize = function() { /** **/ Content.editSiteLayer('layer'); /** , **/ if (ContentShow) { Content.editSiteLayer('cloud-layer'); } }; /** **/ window.onkeydown = function(event) { /** **/ if (ContentShow) { /** **/ event = event || window.event; switch(event.keyCode) { case 27: // "Escape" Content.cloudClose(); break; case 37: // " " ( ID ) if (ContentPointPrev !== null){Content.cloudShow(ContentPointPrev);} break; case 39: // " " ( ID ) if (ContentPointNext !== null){Content.cloudShow(ContentPointNext);} break; } } }; }
<script type="text/javascript" language="javascript">Content.init();</script>
Source: https://habr.com/ru/post/153073/
All Articles