Posted in Javascript onFebruary 10, 2014
核心代码:
1.css:16sucai.css
html,body { height: 100%; margin: 0px; padding: 0px; } a {outline: none;} img{ border:0;} a img {vertical-align: top;} a img.last {margin-right: 0; } .box { width: 850px; height: auto; overflow: hidden; background: #666; margin-top: 10px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 10px; padding-right: 0; padding-bottom: 0; padding-left: 10px; } .box ul { margin: 0px; padding: 0px; float: left; list-style-type: none; } .box li { width: 150px; height: 100px; float: left; cursor: pointer; display: inline; margin: 0 10px 10px 0; border: 5px solid #333; } #bg { width: 100%; height: 898px; position: absolute; left: 0px; top: 0px; background: #000; filter: alpha(opacity : 50); opacity: 0.5; display: none; } #bg1 { width: 100%; height: 100%; position: absolute; left: 0px; top: 0px; background: #000; filter: alpha(opacity : 50); opacity: 0.5; display: none; } #bottom { width: 215px; height: 50px; position: absolute; left: 50%; bottom: 0px; margin: 0 0 0 -107px; border: 1px solid #232323; background: #444; padding: 1px; z-index: 1; display: none; } #bottom ul { width: 100%; height: 100%; margin: 0px; padding: 0px; list-style-type: none; background: #000; } #bottom li { background: url(../images/ico.jpg) no-repeat; float: left; display: inline; margin: 8px 0 0 18px; cursor: pointer; } #bottom li.prev { width: 30px; height: 33px; background-position: 0 0; } #bottom li.next { width: 30px; height: 33px; background-position: -35px 0; } #bottom li.img { width: 30px; height: 33px; background-position: -106px 0; } #bottom li.close { width: 31px; height: 33px; background-position: -70px 0; } #frame { background: #fff; padding: 3px; position: absolute; z-index: 2; display: none; filter: alpha(opacity : 0); opacity: 0; text-align: center; } #bottom1 { width: 215px; height: 50px; position: absolute; left: 50%; bottom: 0px; margin: 0 0 0 -107px; border: 1px solid #232323; background: #444; padding: 1px; z-index: 1; display: none; } #bottom1 ul { width: 100%; height: 100%; margin: 0px; padding: 0px; list-style-type: none; background: #000; } #bottom1 li { background: url(../../images/ico.jpg) no-repeat; float: left; display: inline; margin: 8px 0 0 18px; cursor: pointer; } #bottom1 li.prev { width: 30px; height: 33px; background-position: 0 0; } #bottom1 li.next { width: 30px; height: 33px; background-position: -35px 0; } #bottom1 li.img { width: 30px; height: 33px; background-position: -106px 0; } #bottom1 li.close { width: 31px; height: 33px; background-position: -70px 0; } #frame1 { background: #fff; padding: 3px; position: absolute; z-index: 2; display: none; filter: alpha(opacity : 0); opacity: 0; text-align: center; } / html,body { height: 100%; margin: 0px; font-size: 12px; } .mydiv { background-color: #FFCC66; background:url(../images/loginbg.png) no-repeat; border: 0px solid #f00; overflow-y:auto; overflow-x:auto; text-align: center; line-height: 40px; font-size: 12px; font-weight: bold; z-index: 999; width: 434px; height: 238px; left: 50%; top: 50%; margin-left: -200px !important; /*FF IE7 该值为本身宽的一半 */ margin-top: -80px !important; /*FF IE7 该值为本身高的一半*/ margin-top: 0px; position: fixed !important; /* FF IE7*/ position: absolute; /*IE6*/ _top: expression(eval(document . compatMode && document . compatMode == 'CSS1Compat') ? documentElement . scrollTop + ( document . documentElement . clientHeight-this . offsetHeight )/ 2 : /*IE6*/ document . body . scrollTop + ( document . body . clientHeight - this . clientHeight )/ 2 ); /*IE5 IE5.5*/ } .mydiv1 { background-color: #FFCC66; border: 0px solid #f00; text-align: center; line-height: 40px; font-size: 12px; font-weight: bold; overflow-y:auto; overflow-x:auto; z-index: 999; width: 434px; height: 238px; left: 50%; top: 50%; margin-left: -200px !important; /*FF IE7 该值为本身宽的一半 */ margin-top: -80px !important; /*FF IE7 该值为本身高的一半*/ margin-top: 0px; position: fixed !important; /* FF IE7*/ position: absolute; /*IE6*/ _top: expression(eval(document . compatMode && document . compatMode == 'CSS1Compat') ? documentElement . scrollTop + ( document . documentElement . clientHeight-this . offsetHeight )/ 2 : /*IE6*/ document . body . scrollTop + ( document . body . clientHeight - this . clientHeight )/ 2 ); /*IE5 IE5.5*/ } .bg,.popIframe { background-color: #666; display: none; width: 100%; height: 100%; left: 0; top: 0; /*FF IE7*/ filter: alpha(opacity = 50); /*IE*/ opacity: 0.5; /*FF*/ z-index: 1; position: fixed !important; /*FF IE7*/ position: absolute; /*IE6*/ _top: expression(eval(document . compatMode && document . compatMode == 'CSS1Compat') ? documentElement . scrollTop + ( document . documentElement . clientHeight-this . offsetHeight )/ 2 : /*IE6*/ document . body . scrollTop + ( document . body . clientHeight - this . clientHeight )/ 2 ); } .popIframe { filter: alpha(opacity = 0); /*IE*/ opacity: 0; /*FF*/ }
2.js事件:
<link rel="stylesheet" type="text/css" href="<%=path%>/css/16sucai.css" /> <script type="text/javascript"> function aa(id){ var ID = id.substring(1,2); var obj2 = document.getElementById(ID); showPigDyt(obj2); } function showInfo(id) { document.getElementById(id).style.display = "block"; } function hiddenInfo(id) { document.getElementById(id).style.display = "none"; } </script> <script language="javascript"> //首页点击查看景点热门照片 function showPigDyt(obj2) { var srcPath = obj2.name; var ID= obj2.id; var oBox = document.getElementById("con"); var oBg = document.getElementById("bg"); var oBot = document.getElementById("bottom"); var aBli = oBot.getElementsByTagName("li"); var oFrame = document.getElementById("frame"); //var aLi = oBox.getElementsByTagName("li"); var aLi=$("li[class='conn']");//获取所有a标签的li标签(集合) //var aImg = oBox.getElementsByTagName("img"); var aImg=$("img[class='conn']");//获取所有a标签里的img标签(集合) //alert(aImg); var i = iNow = 0; for (i = 0; i < aLi.length; i++) { aLi[i].index = i; aLi[i].onclick = function () { with (oFrame.style) { display = "block", top = this.offsetTop + "px", left = this.offsetLeft + "px", width = this.offsetWidth + "px", height = this.offsetHeight + "px"; } //alert(srcPath); oFrame.innerHTML = "<img id=\"" + ID + "\" onmouseover='upNext(this)' src=\"" + (srcPath) + "\" />"; var oImg = oFrame.getElementsByTagName("img")[0]; var iWidth; var iHeight; if(oImg.width < 600 || oImg.width == 0){ iWidth = 600; }else{ iWidth = oImg.width; } if(oImg.width < 425 || oImg.height == 0){ iHeight = 425; }else{ iHeight = oImg.height; } var iLeft = parseInt((document.documentElement.clientWidth / 2) - (iWidth / 2)); var iTop = parseInt((document.documentElement.clientHeight / 2) - (iHeight / 2) - 50); with (oImg.style) { height = width = "100%"; } startMove(oFrame, {opacity:100, left:iLeft, top:iTop, width:iWidth, height:iHeight}); oBg.style.display = "block"; oBot.style.display = "block"; iNow = this.index + 1; }; } document.onmousedown = function () { return false; }; aBli[0].onclick = function () { //箭头向左事件触发 if(ID == 0){ ID = aLi.length; } ID--; var pathImg = document.getElementById(ID).name; oFrame.innerHTML = "<img id=\"" + ID + "\" onmouseover='upNext(this)' src=\"" + pathImg + "\" width=\"100%\" height=\"100%\" />"; }; aBli[1].onclick = function () { oFrame.style.cursor = "move"; oFrame.onmousedown = function (e) { var oEvent = e || event; var X = oEvent.clientX - oFrame.offsetLeft; var Y = oEvent.clientY - oFrame.offsetTop; document.onmousemove = function (e) { var oEvent = e || event; var L = oEvent.clientX - X; var T = oEvent.clientY - Y; if (L < 0) { L = 0; } else { if (L > document.documentElement.clientWidth - oFrame.offsetWidth) { L = document.documentElement.clientWidth - oFrame.offsetWidth; } } if (T < 0) { T = 0; } else { if (T > document.documentElement.clientHeight - oFrame.offsetHeight) { T = document.documentElement.clientHeight - oFrame.offsetHeight; } } oFrame.style.left = L + "px"; oFrame.style.top = T + "px"; oFrame.style.margin = 0; return false; }; document.onmouseup = function () { document.onmouseup = null; document.onmousemove = null; }; return false; }; }; aBli[2].onclick = function () { //箭头向右事件触发 if(ID == (aLi.length-1)){ ID = -1; } ID++; var pathImg = document.getElementById(ID).name; oFrame.innerHTML = "<img id=\"" + ID + "\" onmouseover='upNext(this)' src=\"" + pathImg + "\" width=\"100%\" height=\"100%\" />"; }; aBli[3].onclick = function () { //箭头关闭事件触发 //alert("32" + iNow - 1); //alert("32" + aImg[iNow - 1].offsetTop); startMove(oFrame, {opacity:0, left:aImg[iNow - 1].offsetLeft, top:aImg[iNow - 1].offsetTop, width:150, height:100}, function () { oFrame.style.display = "none"; oBg.style.display = "none"; oBot.style.display = "none"; oFrame.onmousedown = null; oFrame.style.cursor = "auto"; }); }; } function upNext(bigimg){ var oBox = document.getElementById("con"); //var aLi = oBox.getElementsByTagName("li"); var aLi=$("li[class='conn']");//获取所有a标签的li标签 var ID = bigimg.id; var leftId; var rightId; if(ID == 0){ leftId = aLi.length; rightId = 1; }else if(ID == (aLi.length-1)){ leftId = (aLi.length-1); rightId = 0; }else{ var leftId = ID++; var rightId = ID--; } var leftpath = document.getElementById(--leftId).name; var rightpath = document.getElementById(rightId).name; var lefturl = "<img id=\"" + leftId + "\" onmouseover='upNext(this)' src=\"" + leftpath + "\" width=\"100%\" height=\"100%\" />"; var righturl = "<img id=\"" + rightId + "\" onmouseover='upNext(this)' src=\"" + rightpath + "\" width=\"100%\" height=\"100%\" />"; var width = bigimg.width; var height = bigimg.height; var imgurl = righturl; var oFrame = document.getElementById("frame"); bigimg.onmousemove=function(){ if(event.offsetX<width/2){ bigimg.style.cursor = 'url(images/arr_left.cur),auto'; imgurl = lefturl; }else{ bigimg.style.cursor = 'url(images/arr_right.cur),auto'; imgurl = righturl; } } bigimg.onmouseup=function(){ if(event.offsetX < width/2){ oFrame.innerHTML = lefturl; }else{ oFrame.innerHTML = righturl; } } } function startMove(obj, json, onEnd) { clearInterval(obj.timer); obj.timer = setInterval(function () { doMove(obj, json, onEnd); }, 30); } function getStyle(obj, attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr]; } function doMove(obj, json, onEnd) { var attr = ""; var bStop = true; for (attr in json) { var iCur = 0; if (attr == "opacity") { iCur = parseInt(parseFloat(getStyle(obj, attr)) * 100); } else { iCur = parseInt(getStyle(obj, attr)); } var iSpeed = (json[attr] - iCur) / 5; iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); if (json[attr] != iCur) { bStop = false; } if (attr == "opacity") { obj.style.filter = "alpha(opacity:" + (iCur + iSpeed) + ")"; obj.style.opacity = (iCur + iSpeed) / 100; } else { obj.style[attr] = iCur + iSpeed + "px"; } } if (bStop) { clearInterval(obj.timer); if (onEnd) { onEnd(); } } } </javascript>
3.页面div布局:
<div class="pic" id="con"> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="table_01"> <c:choose> <c:when test="${empty image_list}"> <tr style="height: 20px"> <td colspan="2"> 暂时没有图片信息 </td> </tr> </c:when> <c:otherwise> <%for (int i = 0; i < 3; i++) {%> <tr> <c:forEach var="image" items="${image_list}" begin="<%=i * 5%>" end="<%=(i + 1) * 5 - 1%>" varStatus="strs"> <td align="left"> <ul><li class="conn"> <a onclick="aa(this.id)" id="s${strs.index }"> <img class="conn" id="${strs.index }" style="height: 116px;width: 116px" src="<%=WholeProperties.IMAGE_IMAGE_URL %>/${image.imagePathSmall}" onclick="showPigDyt(this,${image.imagePathMiddle})" name="<%=WholeProperties.IMAGE_IMAGE_URL %>/${image.imagePathMiddle}"/></a> </li></ul> <ul> <li style="line-height:20px"> <input type="checkbox" id="upPicID" name="upPicID" value="${image.id }" /> <c:choose> <c:when test="${fn:length(image.imageName) > 6}"> <c:out value="${fn:substring(image.imageName, 0, 6)}..." /> </c:when> <c:otherwise> <c:out value="${image.imageName}" /> </c:otherwise> </c:choose> </li> <li style="line-height:20px">上传时间:<c:out value="${fn:substring(image.uploadTime,0,9)}"></c:out></li> <li style="line-height:20px">图片大小:${image.imageSize }</li> </ul> </td> </c:forEach> </tr> <% } %> </c:otherwise> </c:choose> </table> </div> <div class="shadow_right"></div> <div class="pic_right"></div> <div id="bg"></div> <div id="bottom"> <ul> <li class="prev"></li> <li class="img"></li> <li class="next"></li> <li class="close"></li> </ul> </div> <div id="frame"></div>
页面图片浮动左右滑动效果的简单实现案例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@