Я пытаюсь расположить <div>
над выделенным пользователем текстом, который будет действовать как панель инструментов, аналогичная средам.
Пока яуспешно получили <div>
для размещения рядом с выделением, я не могу заставить его правильно центрироваться относительно выделения:
$(function() {
// Setup the Event Listener
$('.article').on('mouseup', function() {
// Selection Related Variables
let selection = window.getSelection(),
getRange = selection.getRangeAt(0),
selectionRect = getRange.getBoundingClientRect();
// Set the Toolbar Position
$('.toolbar').css({
top: selectionRect.top - 42 + 'px',
left: selectionRect.left + 'px'
});
});
});
Я могу определить центральную точку выделения, вычитая оставшиеся выделениясмещение от области просмотра по ширине как таковое:
selectionRect.left - selectionRect.width
Однако я не уверен, как использовать это, чтобы установить положение моей панели инструментов по центру относительно прямоугольника выбора?
Я попытался вычесть смещение панели инструментов влево от ширины выделенной области, разделенной на 2, но это также не совсем точно выровняет центр.
JSFiddle
https://jsfiddle.net/e64jLd0o/