JavaScript dialog彈出div提示效果代碼

來源:互聯網
上載者:User
提示:您可以先修改部分代碼再運行

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title>Dialog</title><link rel="stylesheet" href="css/dialog.css"></head><body><div ><p>點我試試</p><p>再點一下</p><p id="pos" ></p></div><script type="text/javascript" >/** * dialog */var Dialog = function () {var dialog, shadow, dragger, posX, posY, title, content;function create_dialog () {if ( !dialog ) {//create shadowshadow = document.createElement('div');shadow.setAttribute('id', 'dialogShadow');//create the dragger of dialogtitle = document.createElement('h3');var anchor = document.createElement('a');anchor.setAttribute('id', 'dialogClose');dragger = document.createElement('div');dragger.setAttribute('class', 'hd');dragger.setAttribute('id', 'dialogDragger');dragger.appendChild(title);dragger.appendChild(anchor);//create the body of dialogcontent = document.createElement('div');content.setAttribute('class', 'bd');//create dialogdialog = document.createElement('div');dialog.setAttribute('id', 'dialog');dialog.appendChild(dragger);dialog.appendChild(content);//bind eventanchor.onclick = hide;shadow.onclick = hide;//append to bodydocument.body.appendChild(shadow);document.body.appendChild(dialog);}center();}function insert_content (tit, cnt) {title.innerHTML = tit;content.innerHTML = cnt;}function hide() {dialog.style.display = 'none';shadow.style.display = 'none';title.innerHTML = '';content.innerHTML = '';}function center () {shadow.style.display = 'block';dialog.style.display = 'block';var scroll_pos = get_scroll_pos();var popup_width = dialog.offsetWidth;var popup_height = dialog.offsetHeight;var browser_width = document.documentElement.clientWidth;var browser_height = document.documentElement.clientHeight;var offset_left = (browser_width - popup_width)/2 + scroll_pos.x;var offset_top = (browser_height - popup_height)/2 + scroll_pos.y - 15;dialog.style.left = offset_left + 'px';dialog.style.top = offset_top + 'px';if (dragger) {dragger.onmousedown = down;dragger.onmouseup = function () {document.onmousemove = null;};}}/** * 拖拽dialog */function down (event) {var point = get_mouse_point(event);posX = point.x - parseInt(dialog.style.left);posY = point.y - parseInt(dialog.style.top);document.onmousemove = move;};function move (event) {event = event || window.event;var point = get_mouse_point(event);dialog.style.left = (point.x - posX) + 'px';dialog.style.top = (point.y - posY) + 'px';}/** * 瀏覽器視窗大小變化時置中彈窗 */window.onresize = function () {if (dialog && dialog.style.display == 'block') {center();}};/** * 滾動瀏覽器時置中彈窗 */window.onscroll = function () {if (dialog && dialog.style.display == 'block') {setTimeout(center, 300);}};/** * 擷取捲軸滾動過的距離 */function get_scroll_pos () {var pos = {x: 0,y: 0};pos.x = document.documentElement.scrollLeft || document.body.scrollLeft;pos.y = document.documentElement.scrollTop || document.body.scrollTop;return pos;}/** * 擷取滑鼠在頁面上的位置 */function get_mouse_point(event) {var event = event || window.event;var point = {x:0,y:0}; var pos = get_scroll_pos();point.x = event.clientX + pos.x;point.y = event.clientY + pos.y;return point;}return {open: function (tit, cnt) {create_dialog();insert_content(tit, cnt);}};}();</script><script type="text/javascript">var trigger = document.getElementById('trigger');var another = document.getElementById('another');trigger.onclick = function () {Dialog.open('這裡是標題', '這裡是內容');};another.onclick = function () {Dialog.open('這裡還是標題', '這裡還是內容哦,只不過多了根線<hr />');};/** * 顯示滑鼠的座標 */document.documentElement.onmousemove = function (event) {event = event || window.event;var scroll = {x: 0,y: 0};scroll.x = document.documentElement.scrollLeft || document.body.scrollLeft;scroll.y = document.documentElement.scrollTop || document.body.scrollTop;document.getElementById('pos').innerHTML = 'x: ' + (scroll.x + event.clientX) + '; y: ' + (scroll.y + event.clientY);};</script></body></html></td> </tr></table>
提示:您可以先修改部分代碼再運行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.