
文章内容
分享一个网站经常用到的Jquery点击图片放大效果:
html代码
<script src="query/1.8.1/jquery.min.js" type="text/javascript"></script> <style> * { margin: 0 auto; } .pic_list { overflow: hidden; } .pic_list li { width: 300px; float: left; margin: 10px; list-style: none; } .pic_list li img { display: block; width: 100%; padding: 4px; } #bgBox { position: fixed; top: 0; left: 0; background-color: #000; opacity: 0; filter: alphea(opacity=0); z-index: 999; } #picShow { position: fixed; z-index: 9999; opacity: 0; filter: alphea(opacity=0); } #picClose { position: fixed; width: 24px; height: 24px; background: url(images/close.png) no-repeat center center; opacity: 0; filter: alphea(opacity=0); z-index: 9999; cursor: pointer; } </style> <ul class="pic_list" id="show"> <li><a title="图片1"> <img src="images/1.jpg" alt="图片1" /></a> <span><a title="图片1">图片1</a></span> </li> <li><a title="图片2"> <img src="images/2.jpg" alt="图片2" /></a> <span><a title="图片2">图片2</a></span> </li> </ul> <script> $(document).ready(function () { imgShow("show", "li"); }) function imgShow(obj, tName) { var img_list = document.getElementById(obj).getElementsByTagName(tName); for (var i = 0; i < img_list.length; i++) { img_list[i].onclick = function () { newEle(); var s_img = this.getElementsByTagName("img")[0]; var src = s_img.getAttribute("src"); bgBox.style.width = viewWidth + "px"; bgBox.style.height = viewHeight + "px"; picShow.setAttribute("src", src); picShow.style.left = (viewWidth - picShow.width) / 2 + "px"; picShow.style.top = (viewHeight - picShow.height) / 2 + "px"; picClose.style.left = (viewWidth + picShow.width) / 2 + "px"; picClose.style.top = (viewHeight - picShow.height) / 2 - 24 + "px"; bodyNode.appendChild(picShow); bodyNode.appendChild(bgBox); bodyNode.appendChild(picClose); startMove(bgBox, 'opacity', 80, function () { startMove(picShow, 'opacity', 100, function () { startMove(picClose, 'opacity', 100, function () { picClose.onclick = function () { bodyNode.removeChild(bgBox); bodyNode.removeChild(picShow); bodyNode.removeChild(picClose); bgBox.setAttribute("style", ""); picShow.setAttribute("style", ""); picClose.setAttribute("style", ""); } }) }) }); } } } function newEle() { bgBox = document.createElement("div"); bgBox.setAttribute("id", "bgBox"); picShow = document.createElement("img"); picShow.setAttribute("id", "picShow"); picClose = document.createElement("div"); picClose.setAttribute("id", "picClose"); bodyNode = document.getElementsByTagName("body")[0], viewWidth = getViewSize()['w'], viewHeight = getViewSize()['h'], timer = null; } function getViewSize() { return { "w": window['innerWidth'] || document.documentElement.clientWidth, "h": window['innerHeight'] || document.documentElement.clientHeight } } function getAttribute(obj, att) { if (window.getComputedStyle) { return getComputedStyle(obj, null)[att]; } else { return obj.currentStyle[att]; } } function startMove(obj, att, mtar, nextfn) { clearInterval(timer); var speed = 0; timer = setInterval(function () { if (att == 'opacity') { var natt = parseFloat(getAttribute(obj, att)) * 100; } else { var natt = parseInt(getAttribute(obj, att)); } var speed = (mtar - natt) / 5; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (natt == mtar) { clearInterval(timer); if (nextfn) { nextfn(); } } else { if (att == 'opacity') { obj.style[att] = (natt + speed) / 100; obj.style.filter = 'alpha(opacity:' + (natt + speed) + ')'; } else { obj.style[att] = natt + speed + 'px'; } } }, 30); } </script>
在线演示:演示