亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

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

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

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

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Title</title>  <style>    html {color: #000;overflow-y: scoll;overflow: -moz-scrollbars-vertical}    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;      overflow: hidden;    }    #longzhoufeng {      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;      border: 1px dashed red;      width: 0px;      height: 0px;      left: 0px;      top: 0px;      overflow: hidden;    }    #moving_box {      border: 2px solid red;    }    .question-box {      position: absolute;      /* older safari/Chrome browsers */      -webkit-opacity: 0.5;      /* Netscape and Older than Firefox 0.9 */      -moz-opacity: 0.5;      /* Safari 1.x (pre WebKit!) 老式khtml內核的Safari瀏覽器*/      -khtml-opacity: 0.5;      /* IE9 + etc...modern browsers */      opacity: .5;      /* IE 4-9 */      filter: alpha(opacity=50);      /*This works in IE 8 & 9 too*/      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";      /*IE4-IE9*/      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);    }    .question-border {      border: 2px dashed red;      overflow: hidden;      z-index: 1;    }    .del-box {      width: 20px;      height: 20px;      float: right;      color: #fff;      position: relative;      margin-top: 1px;      margin-right: 1px;      z-index: 99;      background-color: red;    }    .active-border {      border: 2px solid red;      -webkit-opacity: 0.5;      /* Netscape and Older than Firefox 0.9 */      -moz-opacity: 0.5;      /* Safari 1.x (pre WebKit!) 老式khtml內核的Safari瀏覽器*/      -khtml-opacity: 0.5;      /* IE9 + etc...modern browsers */      opacity: .5;      /* IE 4-9 */      filter: alpha(opacity=50);      /*This works in IE 8 & 9 too*/      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";      /*IE4-IE9*/      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);    }    .box-background-image {      position: absolute;      width: 1000px;      height: 1600px;    }  </style>  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>  <script src="https://cdn.bootcss.com/angular.js/1.0.5/angular.min.js"></script>  <script>    var app = angular.module('miniapp', []);    function AppController($scope, $timeout) {      //阻止默認行為      function stopDefault(e) {        if(e && e.preventDefault)          e.preventDefault();        else          window.event.returnValue = false;        return false;      }      $scope.bgImg = '1.jpg';      $scope.getBoxPicSize = function() {        $scope.bgWidth = angular.element(".box-background-image").width();        $scope.bgHeight = angular.element(".box-background-image").height();      }      ///////////////////////////////////////      var wId = "num";      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("longzhoufeng");      var frame = $("#longzhoufeng");      var frameBox = {        "pos": frame.offset(),        "width": frame.outerWidth(),        "height": frame.outerHeight()      }      var newMarkPos = {        "left": startL,//按下時鼠標距離的左邊的距離        "top": startT//按下時鼠標距離的上邊的距離      }      var myEvent = $scope.myEvent = {        //鼠標點擊        mouseDown: 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 - frameBox.pos.left;          startT = startY - frameBox.pos.top;          index++;          var div = document.createElement("div");          div.id = wId + index;          div.className = "dashed-box";          boxObj.appendChild(div);          div = null;          // 如果鼠標在 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;          }        },        //鼠標離開        mouseUp: function(e) {          var e = window.event || e;          if(boxWidth >= 1 || boxHeight >= 1) {            boxObj.removeChild(dragBox(wId + index));            index++;            var div = document.createElement("div");            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;        },        //鼠標移動        mouseMove: 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";            if(e.srcElement.src) {              stopDefault(e)            }          }        }      }      var dragBox = function(id) {        return document.getElementById(id);      }    }    //等待圖片加載完成    app.directive("loadImage", function() {      return {        restrict: 'A',        link: function(scope, element, attrs) {          element.bind('load', function() {            scope.$apply(attrs.loadImage);          });        }      }    })  </script></head><body><div ng-app="miniapp" ng-controller="AppController">  <div class="main">    <div id="longzhoufeng" ng-mousedown="myEvent.mouseDown($event)" ng-mouseup="myEvent.mouseUp($event)" ng-mousemove="myEvent.mouseMove($event)">      <img ng-src="{{bgImg}}" class="box-background-image" load-image="getBoxPicSize()">    </div>  </div></div></body></html>

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.VeVB.COm/code/HtmlJsRun測試上述代碼運行效果。

更多關于AngularJS相關內容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結》、《AngularJS入門與進階教程》及《AngularJS MVC架構總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲va在线va天堂资源站| 国产精品视频一区国模私拍| 欧美在线激情视频| 国产精品成人品| 亚洲电影免费观看高清| 久久99精品久久久久久噜噜| 国产一区私人高清影院| 91成人在线视频| 最新日韩中文字幕| 国产精品亚发布| 美女黄色丝袜一区| 亚洲天堂av网| 久久不射热爱视频精品| 欧美黑人巨大精品一区二区| 国产日韩欧美中文| 亚洲成人av资源网| 国产精品久久久久高潮| 97成人超碰免| 中文字幕一区二区三区电影| 日韩av理论片| 97在线看免费观看视频在线观看| 国产91ⅴ在线精品免费观看| 亚洲成在人线av| 91久久精品美女| 亚洲一区国产精品| 欧美精品久久久久a| 日韩电影免费观看在线| 成人黄色av网站| 性色av一区二区三区免费| 欧美日韩精品中文字幕| 岛国视频午夜一区免费在线观看| 97视频在线看| 国产欧美日韩中文| 久热精品视频在线| 欧美性猛交99久久久久99按摩| 日韩一区在线视频| 国产日韩欧美日韩大片| 91精品在线看| 国产精品欧美日韩一区二区| 97精品国产97久久久久久免费| 欧美一级片一区| 国产精品永久免费| 日韩在线视频播放| 中文日韩在线视频| 深夜精品寂寞黄网站在线观看| 亚洲国产天堂久久综合网| 成人国内精品久久久久一区| 色青青草原桃花久久综合| 日韩欧美在线免费观看| 欧美极品少妇xxxxⅹ裸体艺术| 欧美刺激性大交免费视频| 91人成网站www| 91精品久久久久久久久久另类| 九九视频直播综合网| 黑人精品xxx一区一二区| 欧美激情精品久久久| 亚洲人成网在线播放| 亚洲免费精彩视频| 日韩精品中文在线观看| 国产日本欧美视频| 欧美国产第一页| 国产黑人绿帽在线第一区| 亚洲第一免费播放区| 国产成人中文字幕| 26uuu日韩精品一区二区| 久久久精品久久久| 欧美一级淫片aaaaaaa视频| 日韩高清电影免费观看完整| 久久伊人91精品综合网站| 国产精选久久久久久| 国产精品久久不能| 亚洲毛片在线观看.| 日韩精品高清视频| 欧美成人精品激情在线观看| 亚洲色图综合久久| 欧美亚洲国产成人精品| 国产亚洲美女久久| 波霸ol色综合久久| 国产极品jizzhd欧美| 神马国产精品影院av| 九九九热精品免费视频观看网站| 精品一区精品二区| 久久精品国产99国产精品澳门| 精品久久久久久中文字幕| 国产在线播放不卡| 国产精品久久久久9999| 亚洲欧美日韩在线高清直播| 亚洲第五色综合网| 中文字幕日韩欧美在线| 欧美国产一区二区三区| 亚洲日本欧美中文幕| 欧美激情伊人电影| 亚洲www永久成人夜色| 久久免费在线观看| 亚洲国产日韩欧美综合久久| 亚洲乱码国产乱码精品精天堂| 久久精品免费电影| 日韩精品在线看| 黑人精品xxx一区一二区| 亚洲欧美国产制服动漫| 成人精品aaaa网站| 欧美激情亚洲激情| 亚洲成人激情在线观看| 国产日韩在线看| 伊人亚洲福利一区二区三区| 黄色91在线观看| 亚洲男人的天堂在线播放| 亚洲男人7777| 成人春色激情网| 成人写真福利网| 亚洲综合日韩在线| 亚洲欧洲一区二区三区久久| 久久久中精品2020中文| 综合激情国产一区| 国产精品成人av性教育| 91美女福利视频高清| 18一19gay欧美视频网站| 亚洲精品自拍第一页| 少妇激情综合网| 92看片淫黄大片看国产片| 日韩av在线影视| 国产91色在线免费| 国产一区二区三区四区福利| 亚洲人成人99网站| 在线不卡国产精品| 久久91亚洲精品中文字幕奶水| 日韩成人在线免费观看| 欧美又大粗又爽又黄大片视频| 亚洲视频网站在线观看| 亚洲一区二区免费在线| 成人免费网站在线看| 亚洲另类欧美自拍| 97色在线观看免费视频| 国产精品第一区| 精品偷拍一区二区三区在线看| 精品国内自产拍在线观看| 日韩精品视频免费在线观看| 国产亚洲视频中文字幕视频| 亚洲片在线资源| 国产区精品视频| 精品久久久久久久久久久| 91精品国产综合久久久久久蜜臀| 北条麻妃一区二区在线观看| 成人黄色av免费在线观看| 久热精品视频在线观看一区| 亚洲欧美日韩天堂一区二区| 国产精品成人观看视频国产奇米| 久久久久久成人| www.亚洲一二| 这里只有视频精品| 亚洲免费小视频| 日韩欧美亚洲综合| 午夜免费日韩视频| 欧美黄色片视频| 欧美交受高潮1| 欧美精品videos另类日本| 亚洲另类xxxx| 亚洲综合在线中文字幕| 欧美黑人性猛交| 538国产精品视频一区二区| 中文字幕亚洲欧美日韩高清| 国内精品400部情侣激情| 欧美日韩免费区域视频在线观看| 亚洲国产婷婷香蕉久久久久久|