JavaScript заметки
Open in Telegram
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Show more7 368
Subscribers
-124 hours
-167 days
-5730 days
Posts Archive
7 368
Применение для fixed позиционирования
Чаще всего нам нужны координаты для позиционирования чего-либо.
Чтобы показать что-то около нужного элемента, мы можем вызвать
getBoundingClientRect, чтобы получить его координаты элемента, а затем использовать CSS-свойство position вместе с left/top (или right/bottom).
Например, функция createMessageUnder(elem, html) выше показывает сообщение под элементом elem.
#браузер #документ #координаты7 368
elementFromPoint(x, y)
Вызов
document.elementFromPoint(x, y) возвращает самый глубоко вложенный элемент в окне, находящийся по координатам (x, y).
Например, код выше выделяет с помощью стилей и выводит имя тега элемента, который сейчас в центре окна браузера.
#браузер #документ #координаты7 368
Фронтенд хомяк - канал с фичами и готовым кодом на css и javascript. Можно вставить в проект или повторить и прокачать свои скилы 💪
Подписывайся, выкладываем свежие исходники каждый день!
7 368
Зачем вообще нужны зависимые свойства? Для чего существуют top/left, если есть x/y?
С математической точки зрения, прямоугольник однозначно задаётся начальной точкой
(x,y) и вектором направления (width,height).
Так что дополнительные зависимые свойства существуют лишь для удобства.
Что же касается top/left, то они на самом деле не всегда равны x/y. Технически, значения width/height могут быть отрицательными. Это позволяет задать «направленный» прямоугольник, например, для выделения мышью с отмеченным началом и концом.
То есть, отрицательные значения width/height означают, что прямоугольник «растет» влево-вверх из правого угла.
#браузер #документ #координаты7 368
Element.getBoundingClientRect()
Метод
Element.getBoundingClientRect() возвращает размер элемента и его позицию относительно viewport (часть страницы, показанная на экране, и которую мы видим).
Результатом является самый маленький прямоугольник, в котором содержится весь элемент с read-only left, top, right, bottom, x, y, width и height свойствами, описывающие это в пикселях. Все свойства, кроме width и height, являются относительными к верхнему левому углу viewport-а.
#браузер #документ #координаты7 368
От введения в JS до продвинутого уровня за 5 месяцев!
В школе DevHouse открылся набор на курс “Fontend-разработчик”. Программа рассчитана и для новичков и для тех кто немного шарит в программировании.
Обещаем научить кодить правильно, современно и чисто:
✔️ Обучим JavaScript.
✔️ Дадим базу по HTML, CSS.
✔️ Научим работать с фреймворком Vue.js.
Мы распределили нагрузку равномерно на весь период обучения - 10 часов в неделю.
Даем уроки от простого к сложному: от переменных и алгоритмов, до рефакторинга и паттернов проектирования.
Ручная проверка, закрытый чат и личный ментор!
Подробнее о программе и скидках узнайте у куратора @alexander_noskov
А пока думаешь - качай наш Гайд полезностей для джуна!
Стартуем 31 октября!
7 368
Запретить прокрутку
Иногда нам нужно сделать документ «непрокручиваемым». Например, при показе большого диалогового окна над документом – чтобы посетитель мог прокручивать это окно, но не документ.
Чтобы запретить прокрутку страницы, достаточно установить
document.body.style.overflow = "hidden".
Аналогичным образом мы можем «заморозить» прокрутку для других элементов, а не только для document.body.
Недостатком этого способа является то, что сама полоса прокрутки исчезает. Если она занимала некоторую ширину, то теперь эта ширина освободится, и содержимое страницы расширится, текст «прыгнет», заняв освободившееся место.
Это выглядит немного странно, но это можно обойти, если сравнить clientWidth до и после остановки, и если clientWidth увеличится (значит полоса прокрутки исчезла), то добавить padding в document.body вместо полосы прокрутки, чтобы оставить ширину содержимого прежней.
#браузер #документ #размеры7 368
Element.scrollIntoView()
Метод
Element.scrollIntoView() интерфейса Element прокручивает контейнер родителя элемента так, чтобы элемент, на котором был вызван scrollIntoView(), стал виден пользователю.
#браузер #документ #размеры7 368
JS Booster – канал в котором публикуются заготовки интерфейсов, задачи и полезные статьи для веб-разработчиков.
Материалы будут полезны для любого уровня подготовки!
Подпишись и улучши свою работу! 👇
7 368
Window.scrollBy()
Прокручивает документ на указанные величины.
Параметры:
X - смещение в пикселях по горизонтали.
Y - смещение в пикселях по вертикали.
#браузер #документ #размеры7 368
Window.scrollTo()
Метод для прокрутки документа до указанных координат.
Параметры:
x-coord пиксель по горизонтальной оси документа, будет отображён вверху слева.
y-coord пиксель по вертикальной оси документа, будет отображён вверху слева.
#браузер #документ #размеры7 368
Сайт, Сэр - telegram канал web-разработчика с 7-ми летним стажем.
В нем он делится готовым кодом для реализации различных фишек на сайте, полезными сервисами и библиотеками, которые помогут и упростят работу над любым проектом.
Количество заявок ограничено ⌛️
7 368
Получение текущей прокрутки
Обычные элементы хранят текущее состояние прокрутки в
elem.scrollLeft/scrollTop.
Что же со страницей? В большинстве браузеров мы можем обратиться к documentElement.scrollLeft/Top, за исключением основанных на старом WebKit (Safari), где есть ошибка (5991), и там нужно использовать document.body вместо document.documentElement.
К счастью, нам совсем не обязательно запоминать эти особенности, потому что текущую прокрутку можно прочитать из свойств window.pageXOffset/pageYOffset
Эти свойства доступны только для чтения.
#браузер #документ #размеры7 368
Ширина/высота документа
Теоретически, т.к. корневым элементом документа является
documentElement, и он включает в себя всё содержимое, мы можем получить полный размер документа как documentElement.scrollWidth/scrollHeight.
Но именно на этом элементе, для страницы в целом, эти свойства работают не так, как предполагается. В Chrome/Safari/Opera, если нет прокрутки, то documentElement.scrollHeight может быть даже меньше, чем documentElement.clientHeight! С точки зрения элемента это невозможная ситуация.
Чтобы надёжно получить полную высоту документа, нам следует взять максимальное из этих свойств.
#браузер #документ #размеры7 368
Всё ещё думаешь, что всякие гайды в интернете помогут тебе достичь новых высот в IT? Зря...
Стоит просто подписаться на эти каналы и получать дозу новой полезной информации каждый день.
How To WebDev — Ты фронтент или бэкенд разработчик? Без разницы — там всё про эти 2 направления.
How To C — Без лишних слов — абсолютно всё про C, C# и C++.
How To IT — О том как стартовать в IT с нуля.
How To SQL — Хватит шариться по интернету в поисках инфы про БД! Она вся тут, просто зайди и увидишь всё, что тебе нужно.
Не оставайся в стороне от нового, подписывайся!
7 368
Не window.innerWidth/Height
Браузеры также поддерживают свойства
window.innerWidth/innerHeight. Вроде бы, похоже на то, что нам нужно. Почему же не использовать их?
Если есть полоса прокрутки, и она занимает какое-то место, то свойства clientWidth/clientHeight указывают на ширину/высоту документа без неё (за её вычетом). Иными словами, они возвращают высоту/ширину видимой части документа, доступной для содержимого.
А window.innerWidth/innerHeight включают в себя полосу прокрутки.
Если полоса прокрутки занимает некоторое место, то эти две строки выведут разные значения.
#браузер #документ #размеры7 368
🤔Что нужно знать, чтобы суметь продать ОБЫЧНУЮ картинку за $17.500?
Внимательно изучите гифку над этим текстом. Хотите верьте, хотите нет — но за нее могут отдать целое состояние.
Если понимать как устроен рынок NFT, можно быстро находить такие картинки, выкупать за бесценок и продавать в 5-10 раз дороже.
Начать можно с изучения проекта TON NFT | CONCEPT. Это канал уникальной NFT-коллекции, созданной на основе реальных предметов искусства. А такие вещи со временем только растут в цене…
Подписывайтесь, если вас не смущает заработок на красивых картинках: https://t.me/+av6_iBspJxBkZThi
7 368
Ширина/высота окна
Чтобы получить ширину/высоту окна, можно взять свойства
clientWidth/clientHeight из document.documentElement
#браузер #документ #размеры7 368
Свойства scrollLeft/scrollTop можно изменять
В отличие от большинства свойств, которые доступны только для чтения, значения
scrollLeft/scrollTop можно изменять, и браузер выполнит прокрутку элемента.
При клике на следующий элемент будет выполняться код elem.scrollTop += 10. Поэтому он будет прокручиваться на 10px вниз.
Установка значения scrollTop на 0 или Infinity прокрутит элемент в самый верх/низ соответственно.
#браузер #документ #размеры7 368
Ребята, нашел крутой канал опытного фронта! Сегодня вечером будет стрим, где он будет показывать фишки разработки на Vue. Приглашаю всех неравнодушных посмотреть и задать все интересующие вас вопросы. От того, как начать свой путь в разработке, до того, как правильно строить отдел. Ссылочку на канал прикрепляю → https://t.me/frontend_lite
