Перемещение фона мышкой

156
25 июля 2018, 01:00

Всем добрый день, надо реализовать перемещение мышкой фона блока (изображение) курсор - move. Каким способом можно сделать?

Answer 1

Нужно реализовать начало перемещения, само перемещение и окончание.

Для этого можно использовать события mousedown, mousemove и mouseup.

Во время перемещения менять css фона соответственно перемещению курсора.

Пример:

const d = document.querySelector('.bg'); 
 
let state = 'off'; 
let initialMousePos, initialPos = {x: 0, y: 0}; 
 
d.addEventListener('mousedown', e => { 
  state = 'on'; 
  initialMousePos = {x: e.clientX, y: e.clientY}; 
}); 
document.addEventListener('mouseup', e => { 
  if (state !== 'on') return; 
  state = 'off'; 
  initialPos.x = initialPos.x + e.clientX - initialMousePos.x; 
  initialPos.y = initialPos.y + e.clientY - initialMousePos.y; 
}); 
 
d.addEventListener('mousemove', e => { 
  if (state !== 'on') return; 
  d.style.backgroundPositionX = (initialPos.x + e.clientX - initialMousePos.x) + 'px'; 
  d.style.backgroundPositionY = (initialPos.y + e.clientY - initialMousePos.y) + 'px'; 
});
.bg { 
  width: 100px; 
  height: 100px; 
  background-image: url(http://placekitten.com/200/300); 
}
<div class=bg></div>

READ ALSO
Не работает всплывающая подсказка

Не работает всплывающая подсказка

Цель: всплывающая подсказка, которая ходит за мышкойПодскажите, почему такая конструкция не работает:

187
Как поставить курсор вне вставленного &lt;span&gt;

Как поставить курсор вне вставленного <span>

Я делаю WYSIWYG редакторКогда нажимается кнопка я ищу выделенный текст и заменяю его на вместе с Bold например

189
занести значения в value

занести значения в value

Как заносить значения value в поле input?

184