Вопросы по задачке JS(расположение элемента):?

Ссылка скопирована
1 ответ

Надо расположить текст, который вводится через prompt - справа внизу от основного элемента(текста на зелёном фоне) Расположить абсолютно, относительно документа, а не окна браузера.

Вроде у меня +- получилось, но есть вопросы:
1) Надо чтобы нижняя граница текста быра вровень с нижней границей элемента. А у меня он смещён вниз. Я думал "- text.offsetHeight" поможет, но нет(50 строка)
2) Когда уменьшается размер самого элемента, текст не остаётся справа внизу. Видно на послденем скрине. Так и должно быть? Я думал, что он будет "прикреплён" к правой нижней точке при любых размерах элемента
3) Ну и я не пойму как сделать мигание текста через setInterval(). Там же для этого надо какую-то функцию внутри прописать

<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. In voluptates accusamus saepe esse quae quam at. Modi quia, aliquam nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum. nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum.nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum. </p> <style>   body{     background: #d8ffe1;     height: 1000px;   }   p{     background: lawngreen;     text-transform: uppercase;     max-width: 30%;   } </style>

<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. In voluptates accusamus saepe esse quae quam at. Modi quia, aliquam nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum. nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum.nulla dolorum similique quos pariatur vel alias facere optio rerum nostrum. </p> <style> body{ background: #d8ffe1; height: 1000px; } p{ background: lawngreen; text-transform: uppercase; max-width: 30%; } </style>

// Задача: Абсолютно расположить текст относительно документа(а не окна браузера) справа внизу от элемента(текст на зелёном фоне) function getAbsoluteCoords(elem){   let absoluteCoords = elem.getBoundingClientRect()   return{     top: absoluteCoords.top + window.pageYOffset,     right: absoluteCoords.right + window.pageXOffset,     // left: absoluteCoords.left + window.pageXOffset,     // bottom: absoluteCoords.bottom + window.pageYOffset,   } }  let elem = document.querySelector('p')  function newText(){   let text = document.createElement('div')   text.style.cssText = 'position: absolute; color: orange; text-transform: uppercase'    let htmlText = prompt('Введите какое сообщение будет показано: ')   text.innerHTML = htmlText    let coords = getAbsoluteCoords(elem)   text.style.top = coords.bottom - text.offsetHeight + 'px' // нижняя граница текста должна быть на уровне ниж. границы зелён. поля   text.style.left = coords.right + 'px'    return text }  let text = newText() document.querySelector('p').append(text) // setInterval(() => text.remove(), 1000)  как сделать мигание Текста?

// Задача: Абсолютно расположить текст относительно документа(а не окна браузера) справа внизу от элемента(текст на зелёном фоне) function getAbsoluteCoords(elem){ let absoluteCoords = elem.getBoundingClientRect() return{ top: absoluteCoords.top + window.pageYOffset, right: absoluteCoords.right + window.pageXOffset, // left: absoluteCoords.left + window.pageXOffset, // bottom: absoluteCoords.bottom + window.pageYOffset, } } let elem = document.querySelector('p') function newText(){ let text = document.createElement('div') text.style.cssText = 'position: absolute; color: orange; text-transform: uppercase' let htmlText = prompt('Введите какое сообщение будет показано: ') text.innerHTML = htmlText let coords = getAbsoluteCoords(elem) text.style.top = coords.bottom - text.offsetHeight + 'px' // нижняя граница текста должна быть на уровне ниж. границы зелён. поля text.style.left = coords.right + 'px' return text } let text = newText() document.querySelector('p').append(text) // setInterval(() => text.remove(), 1000) как сделать мигание Текста?

Вопросы по задачке JS(расположение элемента):?

Вопросы по задачке JS(расположение элемента):?

Ну и вообще это нормальный способ решить эту задачу или есть проще?

Дополнительно:

Тебе точно нужно использовать js а не css? Бессмыслица какая-то - использовать джаваскрипт чтобы прописать стили элемента.

  • Kentavr16, такая задача, на Координаты
  • Kentavr16, в обычной жизни лучше css конечно
  • В общем, что сказать. по 1 пункту - у тебя в функции получения координат поле с bottom закоментировано. Оно в принципе не должно работать. Идея размещения элемента правильная, смотри в примере, все работает.
    По второму пункту - если у тебя позиция абсолют, то ожидать отзывчивости не стоит. Код устанавливает позицию для текущего размера элемента - на этом все. Чтобы в данном случае получить отзывчивость - нужно запускать функцию для установки размера при кажджом изменении размера элемента. ПОВТОРЮ - с реальной жизнью тут я не вижу ничего общего, все это делается стилями. Я в примере использовал обсервер, но можно и придумать другое решение.
    По поводу пункта три -
    пример решения в песочнице.
  • Kentavr16, спасибо насчёт мигания. Не пойму только что 'isVisible=!isVisible' делает(( точнее понимаю что делает - не понимаю зачем, и почему в 2х условиях: и в if, и в else
  • Danila232, это первое что пришло в голову. Добавил комментарии в песочницу, может помогут разобраться. Также для простоты убрал лишнее переключение. Напоминаю - код к реальной жизни не имеет практически никакого отношения. Почти любые манипуляции с внешним видом элемента проводятся с помощью чистого css
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Игорь Волков Ответ

    Для того чтобы решить проблему с расположением элемента на странице с помощью JavaScript, можно использовать различные методы и свойства, такие как `getElementById`, `querySelector`, `getBoundingClientRect` и другие.

    Прежде всего, необходимо определить элемент, который нужно расположить. Для этого можно использовать методы `getElementById` или `querySelector`, чтобы получить доступ к нужному элементу по его id или селектору.

    Например, если у вас есть элемент с id "myElement", то можно получить его следующим образом:

    var element = document.getElementById("myElement");

    var element = document.getElementById("myElement");

    Затем, чтобы узнать текущие координаты элемента на странице, можно воспользоваться методом `getBoundingClientRect`, который возвращает объект с координатами элемента, такими как `top`, `right`, `bottom`, `left`, `width`, `height`. Например:

    var rect = element.getBoundingClientRect();
    console.log("Top: " + rect.top + ", Left: " + rect.left);

    var rect = element.getBoundingClientRect(); console.log("Top: " + rect.top + ", Left: " + rect.left);

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

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

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно