国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery實現的鼠標拖動畫矩形框示例【可兼容IE8】

2019-11-19 11:32:22
字體:
來源:轉載
供稿:網友

本文實例講述了jQuery實現的鼠標拖動畫矩形框。分享給大家供大家參考,具體如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh"><head>  <title>鼠標拖動畫矩形</title>  <meta http-equiv="content-type" content="text/html;charset=utf-8">  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>  <style type="text/css">    body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td {margin: 0;padding: 0}    html {color: #000;overflow-y: scoll;overflow: -moz-scrollbars-vertical}    #confirmingAppraisal {      position: relative;      left: 0;      top: 0;      margin: 0 auto;      padding: 0;      width: 800px;      min-height: 800px;      overflow: auto;      height: 1000px;      background-color: #e9e9e9;    }    .dashed-box {position: absolute;z-index: 9997; border: 1px dashed red; width: 0px; height: 0px;left: 0px; top: 0px; overflow: hidden;}    #moving_box {background-color: #0A90DB;}    .question-box {      position: absolute;      z-index: 9998;      /*background: red;*/      /* older safari/Chrome browsers */      -webkit-opacity: 0.8;      /* Netscape and Older than Firefox 0.9 */      -moz-opacity: 0.8;      /* Safari 1.x (pre WebKit!) 老式khtml內核的Safari瀏覽器*/      -khtml-opacity: 0.8;      /* IE9 + etc...modern browsers */      opacity: .8;      /* IE 4-9 */      filter: alpha(opacity=80);      /*This works in IE 8 & 9 too*/      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";      /*IE4-IE9*/      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);    }    .question-border {z-index: 9999;border: 2px dashed red;overflow: hidden; }    .del-box {      width: 17px;      height: 17px;      float: right;      position: relative;      margin-top: 1px;      margin-right: 1px;      z-index: 99999999999;      background: url(del.png);    }  </style>  <script language="javascript">    window.onload = function() {      function stopDefault(e) {        if(e && e.preventDefault)          e.preventDefault();        else          window.event.returnValue = false;        return false;      }      function oBox() {        var wId = "w";        var index = 0;        var target = null;        var startX = 0, startY = 0;        var flag = false;        var startL = 0, startT = 0, boxHeight = 0, boxWidth = 0;        var boxObj = document.getElementById("confirmingAppraisal");        var frame = $("#confirmingAppraisal");        var referenceSize = {          "pos": frame.offset(),          "width": frame.outerWidth(),          "height": frame.outerHeight()        }        var newMarkPos = {          "left": startL,////按下時鼠標距離的左邊的距離          "top": startT////按下時鼠標距離的上邊的距離        }        //鼠標點擊        boxObj.onmousedown = function(e) {          flag = true;          var e = window.event || e;          target = e.target || e.srcElement; //獲取document 對象的引用          //e.pageY,e.pageX兼容          if(target.src) {            stopDefault(e)          }          var scrollTop = boxObj.scrollTop;          var scrollLeft = boxObj.scrollLeft;          var ePageX = e.clientX + scrollLeft;          var ePageY = e.clientY + scrollTop;          //按下時鼠標距離頁面的距離          startX = ePageX;          startY = ePageY;          //按下時鼠標距離的左邊和上邊的距離          startL = startX - referenceSize.pos.left;          startT = startY - referenceSize.pos.top;          index++;          // 如果鼠標在 box 上被按下          if(target.className.match(/del-box/i)) {            // 允許拖動            flag = false;            // 設置當前 box 的 id 為 moving_box            var movingBox = document.getElementById("moving_box")            if(movingBox !== null) {              movingBox.removeAttribute("id");            }            target.id = "moving_box";            removeBox(target);          } else {            var div = document.createElement("div");            div.id = wId + index;            div.className = "dashed-box";            boxObj.appendChild(div);            div = null;          }        }        //鼠標離開        boxObj.onmouseup = function(e) {          var e = window.event || e;          if(boxWidth >= 1 || boxHeight >= 1) {            boxObj.removeChild(dragBox(wId + index));            index++;            var div = document.createElement("div");            var spanObj = document.createElement("span");            spanObj.className = 'del-box';            div.appendChild(spanObj);            div.className = "question-box question-border";            div.style.left = newMarkPos.left + "px";            div.style.top = newMarkPos.top + "px";            div.style.width = boxWidth + "px";            div.style.height = boxHeight + "px";            boxObj.appendChild(div);            div = null;            boxWidth = 0;            boxHeight = 0;          } else {            if(flag) {              boxObj.removeChild(dragBox(wId + index));            }          }          flag = false;        }        //鼠標移動        boxObj.onmousemove = function(e) {          var e = window.event || e;          stopDefault(e)          if(flag) {            var scrollTop = boxObj.scrollTop;            var scrollLeft = boxObj.scrollLeft;            var ePX = e.clientX + scrollLeft;            var ePY = e.clientY + scrollTop;            var disW = ePX - startX;            var disH = ePY - startY;            var L = startL + disW;            var T = startT + disH;            if(disW > 0) {              if(L >= 0) {                boxWidth = disW              }              newMarkPos.left = startL;            } else {              if(L <= 0) {                L = 0;                boxWidth = startL;              }              boxWidth = (startL - L);              newMarkPos.left = L;            }            if(disH > 0) {              if(T >= 0) {                boxHeight = disH              }              newMarkPos.top = startT;            } else {              if(T <= 0) {                T = 0;                boxHeight = startT;              }              boxHeight = (startT - T)              newMarkPos.top = T;            }            dragBox(wId + index).style.left = newMarkPos.left + "px";            dragBox(wId + index).style.top = newMarkPos.top + "px";            dragBox(wId + index).style.width = Math.abs(boxWidth) + "px";            dragBox(wId + index).style.height = Math.abs(boxHeight) + "px";            stopDefault(e)          }        }        var dragBox = function(id) {          return document.getElementById(id);        }      };      oBox();      function removeBox(obj) {        if(obj) {          var confirmingAppraisal = document.getElementById('confirmingAppraisal');          if(obj.className == 'del-box') {            var objId = document.getElementById(obj.id);            confirmingAppraisal.removeChild(objId.parentNode);          } else {            alert(123)          }        }      };    }  </script></head><body style="overflow: hidden"><div class="confirming-appraisal">  <div id="confirmingAppraisal">    <img src="1.jpg" style="position: absolute;width: 1000px;height: 1600px;">  </div></div></body></html>

感興趣的朋友可以使用如下工具測試上述代碼運行效果:

在線HTML/CSS/JavaScript代碼運行工具:
http://tools.VeVB.COm/code/HtmlJsRun

在線HTML/CSS/JavaScript前端代碼調試運行工具:
http://tools.VeVB.COm/code/WebCodeRun

更多關于jQuery相關內容還可查看本站專題:《jQuery動畫與特效用法總結》、《jQuery切換特效與技巧總結》、《jQuery擴展技巧總結》、《jQuery常用插件及用法總結》、《jQuery拖拽特效與技巧總結》、《jQuery表格(table)操作技巧匯總》、《jQuery常見經典特效匯總》及《jquery選擇器用法總結

希望本文所述對大家jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施甸县| 怀来县| 大埔县| 成安县| 虹口区| 黔西| 师宗县| 汝城县| 广南县| 佛山市| 临沧市| 华池县| 东乌珠穆沁旗| 恭城| 柳州市| 长治市| 北票市| 鹤壁市| 肇州县| 颍上县| 东乡县| 临邑县| 平度市| 荣成市| 金沙县| 潼关县| 开远市| 桐城市| 准格尔旗| 吉林省| 吉隆县| 呼伦贝尔市| 赣州市| 慈利县| 武安市| 星子县| 苍南县| 景德镇市| 蚌埠市| 宣城市| 常山县|