JavaScript для рисования прямоугольника над изображением - PullRequest
0 голосов
/ 22 февраля 2012

Я делал проект на php с помощью java-скрипта. Я пытался нарисовать прямоугольник над изображением с помощью javascript. Прямоугольник можно нарисовать в любом месте изображения любого размера по сравнению с размером изображения, а также отобразить координату рисования прямоугольника. Пожалуйста, помогите мне ... меня пробовали разными способами .....

 <STYLE>
  #rubberBand {
  position: absolute;
   visibility: hidden;
   width: 0px; height: 0px;
  border: 2px solid red;
 }
 </STYLE>

 </HEAD>
 <BODY>
 <img name="myImage" id="myImage" src="a.jpg">


 <DIV ID="rubberBand"></DIV>

 <SCRIPT>

var IMG;

  function startRubber (evt) {
   if (document.all) {

       var r = document.all.rubberBand;
       r.style.width = 0;
       r.style.height = 0;
       r.style.pixelLeft = event.x;
      r.style.pixelTop = event.y;
      r.style.visibility = 'visible';
      IMG.ondragstart = cancelDragDrop; // otherwise IE will try to drag the image
   }
     else if (document.getElementById) {
   // firefox
   evt.preventDefault();
    var r = document.getElementById('rubberBand');
   r.style.width = 0;
  r.style.height = 0;
   r.style.left = evt.clientX + 'px';
    r.style.top = evt.clientY + 'px';
   r.style.visibility = 'visible';
   r.onmouseup = stopRubber;
    }
    IMG.onmousemove = moveRubber;
   }
   function moveRubber (evt) {
   if (document.all) { // IE
   var r = document.all.rubberBand;
    r.style.width = event.x - r.style.pixelLeft;
  r.style.height = event.y - r.style.pixelTop;
   }
   else if (document.getElementById) { // firefox
   var r = document.getElementById('rubberBand');
   r.style.width = evt.clientX - parseInt(r.style.left);
    r.style.height = evt.clientY - parseInt(r.style.top);
   }
   return false; // otherwise IE won't fire mouseup :/
   }
  function stopRubber (evt) {
  IMG.onmousemove = null;
   }

  function cancelDragDrop()
   {
  window.event.returnValue = false;
   }

   IMG = document.getElementById('myImage');
   IMG.onmousedown = startRubber;
   IMG.onmouseup = stopRubber;

 </SCRIPT>

1 Ответ

3 голосов
/ 22 февраля 2012

Вам нужна обертка, чтобы вы могли абсолютно позиционировать элементы внутри. Размеры будут варьироваться в зависимости от вашей фотографии и того, где вы хотите коробку.

HTML:

<div class="wrapper">
     <img src="...." />
     <div class="box"></div>
</div>

CSS:

.wrapper {
    position:relative;
}

.box {
    position:absolute;
    top:10px;
    left:10px;
    width:50px;
    height:50px;
    border:2px solid #ffffff;
    background-color:transparent
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...