本文實例講述了jquery實作可自動判斷位置的彈出層效果程式碼。分享給大家供大家參考。具體如下:
這是jquery實現的智慧型彈出層效果,位置可以自適應,當層靠右邊顯示時自動往左移。初次運作時請按F5刷新,載入遠端jQuery後才能看到效果,點選滑鼠左鍵,彈出層將會出現,在最右邊點選時圖層自動往左移。
運作效果截圖如下:
線上示範網址如下:
http://demo.jb51.net/js/2015/jquery-auto-check-pos-alert-dlg-demo/
具體程式碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jquery弹出层浮动层代码</title> <script src="jquery1.3.2.js" type="text/javascript"></script> <style> *{ margin:0; padding:0} body{ margin:0; padding:0; font-size:12px} ul,li{ list-style:none} ul{position:relative;top:-3px; left:-3px;border:1px solid #ccc; background:#fff;} li{height:23px;line-height:23px;cursor:default; padding:0 0 0 10px} li.current{background:#eee} .wrap{ width:158px; background:#eee; position:absolute;} </style> <script type="text/javascript"> $(function(){ $(".wrap").hide(); var objW=$(".wrap").width(); var objH=$(".wrap").height(); $(document).mousedown(function(e){ var selfX=objW+e.pageX; var selfY=objH+e.pageY var bodyW=document.documentElement.clientWidth+document.documentElement.scrollLeft; var bodyH=document.documentElement.clientHeight+document.documentElement.scrollTop; if(selfX>bodyW && selfY>bodyH){ $(".wrap").css({top:(bodyH-objH),left:(bodyW-objW)}).show(); }else if(selfY>bodyH){ $(".wrap").css({top:(bodyH-objH),left:e.pageX}).show(); }else if(selfX>bodyW){ $(".wrap").css({top:e.pageY,left:(bodyW-objW)}).show(); }else{ $(".wrap").css({top:e.pageY,left:e.pageX}).show(); } }) $("li").hover(function(){ $(this).addClass("current"); },function(){ $(this).removeClass("current"); }).click(function(){ alert($(this).text()) $(this).parent().parent().hide(); }) }) </script> </head> <body> <div style="height:800px;width:900px"> </div> <div style="position:absolute;top:300px;left:300px"><span style="color:#f00;font-size:28px">请按F5刷新,才能看到效果,</span><br>点击鼠标左键,弹出层,<br>在最右边点击时层自动往左移</div> <div class="wrap"> <ul onmousedown="event.cancelBubble = true"> <li>连江</li> <li>宁德</li> <li>福州</li> <li>厦门</li> <li>北京</li> </ul> </div> </body> </html>
希望本文所述對大家的jQuery程式設計有所幫助。