Показать сообщение отдельно
  #6 (permalink)  
Старый 25.09.2017, 18:11
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Если тыкать мышь на svg, то не работает. Если на бордер - более-менее работает.
Причем у круглого бордера активны только четыре верхних-нижних-левых-правых точек - остальное перекрыто квадратным внутренним #document
<style>
object {
      border:4px solid black;
      height:82px;
      width:82px;
      border-radius:50%;
}
</style>
<body>
          <object id="ball" type="image/svg+xml"  data="https://js.cx/clipart/ball.svg"> </object>

</body>
<script>
	
var ball = document.getElementById('ball');
// ball.onload = function() {
// var image = ball.contentWindow.document.querySelector('svg');
//     image.onmousedown = function() {
//          return false;
//     }
// }
ball.onmousedown = function(e) {

  ball.style.position = 'absolute';
  document.body.appendChild(ball);
  moveAt(e);

  ball.style.zIndex = 1000; // над другими элементами

  function moveAt(e) {
    ball.style.left = e.pageX - ball.offsetWidth / 2 + 'px';
    ball.style.top = e.pageY - ball.offsetHeight / 2 + 'px';
  }

  document.onmousemove = function(e) {
    moveAt(e);
  };

  ball.onmouseup = function() {
    document.onmousemove = null;
    ball.onmouseup = null;
  };

}

ball.ondragstart = function() {
  return false;
};
</script>


Можно было бы попробовать поиграть с содержимым object (например, строки 10-15), но кроссдоменный запрет...
А без object svg себя прекрасно ведет... https://learn.javascript.ru/drag-and-drop

Последний раз редактировалось Dilettante_Pro, 26.09.2017 в 13:44.
Ответить с цитированием