Для кросс-браузерного вычисления координат элемента давно используется суммирование offsetLeft/offsetTop. Список глюков этого подхода такой же длинный, как история его существования.
Эта статья - о том, как вычислять координаты не только кросс-браузерно, но и правильно. Да, и еще - быстро.
Она заключается в том, что браузер позиционирует элементы относительно друг друга, и у каждого элемента есть свой "родитель по позиционированию": offsetParent.
В качестве offsetParent обычно выступает родитель parentNode. Но это не всегда так.
Например, для элемента с position='absolute' родителем по позиционированию является ближайший позиционированный родитель, то есть первый элемент в цепочке вложенности, у которого свойство position - одно из: absolute, relative или fixed(не поддерживается IE<7).
Наиболее подробно это описано в стандарте CSS: containing block details. Этот самый "containing block" - как раз и определяет offsetParent, от которого отсчитывается позиция элемента.
Как браузер находит elem.offsetParent
Двигаемся вверх по цепочке родителей elem, останавливаясь на следующих элементах, которые являются offsetParent:
<body>
элемент, у которого position - не static(значение по умолчанию)
элементы table,th,td - если elem.position='static'
У элемента <body> никогда нет offsetParent.
В IE 7+/Opera у элементов с elem.position='fixed' нет offsetParent.
Сдвиг относительно offsetParent'а задается свойствами offsetTop/offsetLeft:
Остается пройтись по всем offsetParent и просуммировать сдвиги. Последним offsetParent обычно является body:
function getOffsetSum(elem) {
var top=0, left=0
while(elem) {
top = top + parseFloat(elem.offsetTop)
left = left + parseFloat(elem.offsetLeft)
elem = elem.offsetParent
}
return {top: Math.round(top), left: Math.round(left)}
}
Основных проблем с этим кодом две.
Он слегка глючит, в разных браузерах - по-разному. Есть проблемы с border'ами элементов, ошибки при прокрутке внутри элементов и некоторые другие.
Он медленный. Каждый раз приходится пройти всю цепочку offsetParent'ов.
Вместо того, чтобы писать длинный кроссбраузерный код с разбором багов, который уж точно везде работает корректно, рассмотрим альтернативное решение, которое мало того что соответствует стандарту - его отлично поддерживают Internet Explorer 6+, Firefox 3+ и Opera 9.62+.
Этот малоизвестный метод по стандарту должен быть у каждого элемента DOM.
На момент написания статьи он реализован в SVN у Webkit. Для нас это значит, что Chrome и Safari с его поддержкой будут готовы уже скоро.
Он возвращает прямоугольник, ограничивающий элемент.
Важно, что координаты прямоугольника заданы относительно окна, а не документа, то есть не учитывают прокрутку страницы. Кроме того, координаты прямоугольника могут быть дробными в Firefox 3.
Координаты элемента на странице - это левый-верхний угол прямоугольника + прокрутка страницы.
Код обработчика onclick:
var br=this.getBoundingClientRect()
alert("Top:"+br.top+", Left:"+br.left+", Right:"+br.right+", Bottom:"+br.bottom)
Как работает getBoundingClientRect() ?
По стандарту CSS любое содержимое находится внутри некоторого прямоугольника: css box.
В случае с блочными элементами, например DIV - этим прямоугольником яляется сам элемент. Такой прямоугольник называют block box.
Если элемент строчный, например, длинный текст - он уже может быть не такой простой формы, а требует для отображения нескольких прямоугольников anonymous box. Обо всем этом подробно об этом написано в стандарте: http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level".
Так что содержание элемента DOM может находится как в одном, так и в нескольких прямоугольниках css box.
Можно получить список всех прямоугольников, соответствующих elem, вызовом elem.getClientRects(). Здесь IE<8 может сделать свои прямоугольники, не соответствующие стандарту, но они для нас не играют роли, так как метод getClientRects() нам не нужен.
Метод elem.getBoundingClientRect() возвращает один (минимальный) прямоугольник, который включает в себя все прямоугольники getClientRects() с содержимым элемента.
На основе метода elem.getBoundingClientRect() мы можем сделать новый вариант функции:
function getOffsetRect(elem) {
// (1)
var box = elem.getBoundingClientRect()
// (2)
var body = document.body
var docElem = document.documentElement
// (3)
var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
// (4)
var clientTop = docElem.clientTop || body.clientTop || 0
var clientLeft = docElem.clientLeft || body.clientLeft || 0
// (5)
var top = box.top + scrollTop - clientTop
var left = box.left + scrollLeft - clientLeft
return { top: Math.round(top), left: Math.round(left) }
}
Получить ограничивающий прямоугольник для элемента.
Задать две переменных для удобства
Вычислить прокрутку документа. Все браузеры, кроме IE, поддерживают pageXOffset/pageYOffset, а в IE, при наличии DOCTYPE прокрутка вычисляется либо на documentElement(<html>), иначе на body - что есть то и берем
Документ(html или body) бывает сдвинут относительно окна (IE). Получаем этот сдвиг.
Прибавляем к координатам относительно окна прокрутку и вычитаем сдвиг html/body, чтобы получить координаты относительно документа
Для Firefox дополнительно мы округляем координаты вызовом Math.round().
На демо находятся 3 вложенных DIV'а. Все они с border, некоторые с position/margin/padding.
Клик на внутреннем отображает значения getOffsetSum/getOffsetRect, а также показывает координаты курсора на момент клика: event.pageX/pageY.
Координаты выводятся сразу под DIV'ами.
На момент написания статьи демо работает в IE6+,Firefox 3+ и Opera 9.62+.
Сравнить getOffsetSum и getOffsetRect
getOffsetSum:значение getOffsetSum()
getOffsetRect:значение getOffsetRect()
event:координаты клика мышью относительно документа
Обратите внимание: результаты getOffsetSum(elem) и getOffsetRect(elem) не во всех браузерах совпадают.
Чтобы увидеть, какой вариант правильный - кликните на самой верхней-левой точке элемента (на самом верхнем-левом уголке черной рамки).
Тогда в pageX/pageY события появятся реальные значения угла элемента, и вы сможете их сравнить с getOffsetSum/getOffsetRect. Именно для такого сравнения в демо и добавлен вывод event.
Что делать, если метод getBoundingClientRect не поддерживается?
С одной стороны, мы могли бы рассмотреть корректную кросс-браузерную реализацию для FF2/Safari/Chrome/Konqueror. Она включает в себя много кода для обхода браузерных багов при подсчетах, которые нам совсем не интересны.
С другой - FF2 давно умер, а движок Safari/Chrome содержит поддержку getBoundingClientRect в SVN, и значит она скоро будет в релизе.
Думаю, и такие явные аутсайдеры как Konqueror подсуетятся, т.к движок Konqueror - по сути такой же, как и Safari.
Поэтому предлагаю использовать:
function getOffset(elem) {
if (elem.getBoundingClientRect) {
// "правильный" вариант
return getOffsetRect(elem)
} else {
// пусть работает хоть как-то
return getOffsetSum(elem)
}
}
Вы узнали, как вычислять координаты элемента на странице: быстро и точно в IE6+/FF3+/Opera 9.62+, и как-то чтоб работало - в Safari/Chrome/Konqueror.
Скоро и в Safari/Chrome/Konqueror будет поддержка правильного метода, поэтому аутсайдерами останутся лишь совсем редкие и багливые браузеры, и все будет работать ок .
Интересная статья. У меня ворос для разработчиков, которые смотрели в код популярных библиотек (jQuery, Mootools, Prototype, extJS) как там реализованно вычисление координат?
Так, как здесь описано, только хуже.
За исключением jQuery/dojo toolkit, где тоже реализовано так, как здесь описано, но в dojo вариант offsetParent лучше проработан для Firefox 2 и Safari/Chrome, а jQuery вообще использует parentNode и делает ряд дополнительных измерений для обнаружения багов браузера.
Thank you for sharing such a wonderful and informative article with us. It was very interesting. Although the topic is usually interesting, your interesting writing makes it even more interesting. Thank you again for all you do!
Also Fouad WhatsApp APK is a modified version of WhatsApp Messenger
в MooTools 2.2.3, как на меня сама удачная реализация определения координаторов с поддержкой getBoundingClientRect и бордеров элементов. Позволю себе привести часть исходного кода:
getOffsets: function() {
if (this.getBoundingClientRect){
var bound = this.getBoundingClientRect(),
html = document.id(this.getDocument().documentElement),
scroll = html.getScroll(),
isFixed = (styleString(this, 'position') == 'fixed');
return {
x: parseInt(bound.left, 10) + ((isFixed) ? 0 : scroll.x) - html.clientLeft,
y: parseInt(bound.top, 10) + ((isFixed) ? 0 : scroll.y) - html.clientTop
};
}
var element = this, position = {x: 0, y: 0};
if (isBody(this)) return position;
while (element && !isBody(element)){
position.x += element.offsetLeft;
position.y += element.offsetTop;
if (Browser.Engine.gecko){
if (!borderBox(element)){
position.x += leftBorder(element);
position.y += topBorder(element);
}
var parent = element.parentNode;
if (parent && styleString(parent, 'overflow') != 'visible'){
position.x += leftBorder(parent);
position.y += topBorder(parent);
}
} else if (element != this && Browser.Engine.webkit){
position.x += leftBorder(element);
position.y += topBorder(element);
}
element = element.offsetParent;
}
if (Browser.Engine.gecko && !borderBox(this)){
position.x -= leftBorder(this);
position.y -= topBorder(this);
}
return position;
}
function styleNumber(element, style){
return styleString(element, style).toInt() || 0;
};
function borderBox(element){
return styleString(element, '-moz-box-sizing') == 'border-box';
};
function topBorder(element){
return styleNumber(element, 'border-top-width');
};
function leftBorder(element){
return styleNumber(element, 'border-left-width');
};
function isBody(element){
return (/^(?:body|html)$/i).test(element.tagName);
};
У меня пока не работает как надо getBoundingClientRect(), так как у элементов (body и div) выставлено position:relative без смещений и есть margin у внутреннего div относительно body. Правильно отображает только Хром (Сафари 4 не проверял), остальные браузеры не учитывают margin (IE, Opera, FF), приходится его вручную дописывать к координатам.
В своё время много перечитал документации по этому вопросу. Но делалось всё под ужасно бажные IE5.5-6, старую Оперу < 9.1 и Фаерфокс. Наилучшим решение вроде казалось тогда применение getBoundingClientRect(). Но баг с тем, что эксплорер и опера под одни и те же числовые значения рисовали элементы не много, но различающиеся по размеру, иной раз сводил усилия по оформлению страницы к оценке "пойдёт". На тот момент было ужасно интересно заглянуть в код эксплорера и оперы. Кто-нибудь знает как там вычисляется размер элементов и как он соотносится с замерами окон?
Спасибо за отличную статью. Помогла мне очень, реализовал для эффекта PhotoLine, что бы определить место положение самой ленты, для прокрутки ее роликом мыши.
Точно так же реализован offset в jQuery. Но недавно столкнулся с неожиданным багом - есть у меня
с заданной шириной, всередине его есть спаны и в случаи перехода спана на новую строку - в 1 случае getBoundingClientRect дает некорректный координаты - он видит слово на предыдущей строке, а оно уже в следующей находится.
Вот рабочая функция. Может кому-то пригодиться. Статья понравилась. И это мой к ней комментарий. Чтобы уж совсем не был пустым коммент, выложил сию функцию.
function ElemCoords(obj)
{
var curleft = 0;
var curtop = 0;
if (obj.offsetParent)
{
while (1)
{
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
if (!obj.offsetParent)
break;
obj=obj.offsetParent;
}
}
else if (obj.x || obj.y)
{
curleft += obj.x;
curtop += obj.y;
}
return {"x":curleft, "y":curtop};
}
Получить координаты элемента можно вызовом функции, типа "ElemCoords(object).x".
function left (elem)
{
var left=0;
alert(elem.offsetLeft)
while(elem)
{
left += parseFloat(elem.offsetLeft);
elem= elem.offsetParent;
}
return Math.round(left);
}
когда я писал этот (Автор: Гость (не зарегистрирован), дата: 29 ноября, 2011 - 12:56) пример, я имел ввиду что, левый верхний угол body необязательно начинается с верхнего левого угла вьюпорта.
Посмотрите на пример и протестите его на всех IE скроля и не скроля страницу.
Сделать метод, умеющий нормально определять координаты на экране для всех браузеров, включая IE6+, включая режим совместимости, можно.
Для этого нужно всего лишь учесть поправку смещения начала координат относительно вьюпорта:
var div = document.createElement('div');
div.style.position = 'absolute';
div.style.left = '0px';
div.style.top = '0px';
div.style.display = 'block';
document.body.appendChild(div);
var horizontalFix = div.getBoundingClientRect().left;
var verticalFix = div.getBoundingClientRect().top;
что делать, если имеется пустой div или br на странице, как вычислить его координаты, getBoundingClientRect возвращает прямоугольник с нулевыми координатами?
Подскажите, пожалуйста. А можно решить такую задачу - имеется определенное слово, необходимо проверить есть ли оно на экране, если есть - выдать его координаты.
Добрый день. Ситуация следующая. Есть множество елементов на странице, создаются они юезром, ограничения на создание по количеству нет. Можно удалять старые и создавать новые. Их можно ресайзить и перетаскивать. Все они имеют братски-сестринские связи. Как мне сравнить координаты одного елемента, выбранного юзером, с другими, для запрета пересечения элементов друг-другом?
В статье не учтено, что родитель элемента (или любой вверх по цепочке) может иметь position: sticky, и вся схема просто рухнет, хоть с offsetParent, хоть с getBoundingClientRect. При нулевой прокрутке всё сработает верно, а потом.. Впрочем предлагаю просмотреть пример с демонстрацией проблемы: jsfiddle.net/rafaylik/sf5Lcrjp
Как можно поступить, если родитель имеет position: sticky:
Your article content is being very much interested, I am very impressed with your post. I hope to receive more great posts. mapquest driving directions
It’s actually a nice and useful piece of info.
I am glad that you simply shared this helpful info with
us. Please keep us up to date like this. Thanks for sharing 먹튀검증
На сайте https://likebook.ru вы можете скачать электронные книги бесплатно и без регистрации, читать книги онлайн бесплатно. Электронная библиотека онлайн. Литература, аудио книги, все интересные книги fb2, epub, txt. Слушать аудиокниги онлайн.
Create QR code for free! Our QR code generator is easy to use. First you choose a size, then add text and images. You're done in just a few minutes. Your custom QR code can be used on posters, business cards, or other promotional items. Did you make something from our generator? Share it with us! We'll feature it on our blog!
You just heard about a new game from a friend called T-Rex dinosaur game. You have never heard about it because it appears in your Google in the absence of Internet connection.
Free QR code generator https://free-qr.com/fr/, un logiciel puissant et pratique, vous permet de générer des codes QR gratuitement sans aucun enregistrement. Vous pouvez personnaliser le design, ajouter un logo, saisir les informations requises et créer un code QR. Avec ce générateur de codes QR gratuit, vous avez la possibilité de concevoir des codes QR impressionnants pour promouvoir votre entreprise.
Design din egen Coder-kode gratis: Vælg mellem 50 understøttede udbydere, Tilpas designet til at matche dit brand og tilføj et logo. Du skal blot indtaste de nødvendige oplysninger såsom kontaktoplysninger, hjemmeside adresse og åbningstider og oprette Coder-koden. Desuden er en af de største fordele ved vores gratis generator, at den kan bruges både på skrivebordet og på mobiltelefoner!
Gratis QR-kodegenerator er en gratis online-verktøy som gir deg mulighet til å bygge opp en QR-kode. Vi tilbyr deg muligheten til å lage din egen QR-kode, helt gratis og uten registrering. Velge det første alternativet fra hovedmenyen, som svarer til plassering av kontaktinformasjonen for etablering av en QR-kode. Spiller ingen rolle om det er ditt navn, adresse eller andre opplysninger. Last ned QR-i høy kvalitet for gratis via vår nettside!
I just joined the forum so there are so many things I don’t know yet, I hope to have the help of the boards, and I really want to get to know you all on the forum candy crush soda
Amazing blog! Lots of useful information here. I want to say about my article on How to Etcher Download and this function. You can use Install Etcher from the repository on Linux. Keep reading my article.
Meet Running dinosaur and his girlfriend in a fun prehistoric game where you jump across rocky terrain. This is a true copy of the original Google Dinosaur Game from the old days.
YouTube to mp3 converter for free - https://ytmp3cc.net/. Insert a link and download videos from 300+ video sites (150+ video sites for free without registration!).
A free site to convert online videos in mp3 or mp4 - https://sabakamusic.com ! All you need to do is copy and paste the URL of the desired video. Select the format, adjust the output quality and download your converted file.
Thank you for sharing. You can download spotify premium gratis apk to listen to great songs and many great genres of music available in the world today
I would like to show my appreciation to the writer for rescuing me from this type of situation. After looking through the the net and seeing methods which were not pleasant, I figured my life was over. Living minus the answers to the problems you’ve sorted out by way of your entire short article is a crucial case, and those that might have adversely affected my entire career if I hadn’t come across your web site. Your actual capability and kindness in maneuvering all the pieces was vital. I don’t know what I would have done if I had not come upon such a stuff like this. I can at this time look ahead to my future. Thanks for your time very much for this high quality and results-oriented guide. I won’t hesitate to refer your site to anyone who requires counselling about this issue.
My wife and i ended up being so fortunate that Jordan managed to deal with his inquiry out of the precious recommendations he was given out of the blog. It’s not at all simplistic just to find yourself giving away tactics which often a number of people have been trying to sell. And we realize we’ve got the writer to be grateful to because of that. All of the explanations you made, the easy website menu, the friendships your site help engender – it’s got most fabulous, and it’s really aiding our son in addition to the family understand the topic is enjoyable, and that’s really pressing. Thank you for the whole lot!
Hmm , very interesting thoughts! I think In order for more interested people to read your thoughts, you should post it on Instagram, and use the services of https://viplikes.net/buy-instagram-followers to quickly increase their ammount.
Thank you for this post! I think you can lead youtube blog about java. You have very big potential. If you want to try it use this site https://soclikes.com to buy subscribers
Listen to contemporary literature at https://books2audio.online/contemporary/. Also referred to as Realistic, Contemporary literature is a broad genre that includes stories that could take place in real life with real people. It deals with social issues, personal problems, and helps the reader or listener better understand themselves, as well as other people. Dialects and informal speech are often used by authors in events that take place in the present.
In one click, download mp3 from YouTube. Search for the video and play it online! Insert a link to the video and choose format for download (mp3, webm, mp4, 3gp).
If you would like to play games on Android then, Treasure of Nadia MOD APK is the perfect game for you. Here we want to make it clear that it eliminates full doubt and entertainment.
The biggest deal for online music lovers is Spotify premium Apk like free app for mobile, iPod, tablets. Spotify Music App for Android is a completely free version application by which you can enjoy millions of podcasts and songs just with a single click.
Welcome to the best Action Game Among US Mod APK. In This article, we share gameplay with you and about the features of the mod menu of Among US game. You can download Among Us Mod
I will bookmark your web site and take the feeds additionally…I am satisfied to search out a lot of helpful information right here in the publish, we want work out more techniques on this regard, thanks for sharing. 메이저놀이터추천
If you're searching for dependable and consistent remodeling options to help you transform your house into your dream home, look no further. Home Addition Allentown
Check out our list of services below and get in touch with us if you would like to have your concrete needs met by concrete pros! Concrete Contractor San Jose
Good post, You learned how to calculate the coordinates of an element on a page: quickly and accurately in IE6+/FF3+/Opera 9.62+, and somehow to make it work - in Safari/Chrome/Konqueror.
Soon, Safari/Chrome/Konqueror will support the correct method, so only very rare and buggy browsers will remain outsiders, and everything will work O happimodapk
I will bookmark your web site and take the feeds additionally…I am satisfied to search out a lot of helpful information right here in the publish, modapkon
Rosszlanyok nem, testalkat vagy tartózkodási hely alapján kereshetsz barátokat. A legördülő menü segítségével válassza ki a megfelelő modellt. Az e-kártya tájékoztatást nyújt az árakról és az elvárásokról.
Klubb6 hjälper dig att hitta en partner som du kan ligga med. Det borde inte vara svårt för dig. Den här webbplatsen som är fri från domar fungerar som ett snabbtåg till "vänner med förmåner"-fasen. Det är lika enkelt som att bläddra, chatta och knulla.
design is going to fit your needs perfectly when you have a team working for you that is committed and invested in your home. Bathroom remodel Stockton
Professional wedding DJ Services in the Philadelphia area. We provide a personalized music curation experience that makes your wedding unique and unforgettable. Let us turn your dream into reality with our top notch entertainment services. Philadelphia Wedding DJ
You like a video and want to listen to it or watch it later when you have no internet access? Our online service allows you to do it. Convert any video into mp4, f4v, 3gp or mp3 high quality for absolutely free! There is nothing else like this on the Internet. https://stormconverter.com converts videos of popular online sources such as YouTube, Vimeo, Dailymotion, Facebook, VK.com, SoundCloud, Vevo, Instagram and AOL.
MEXTRIC is a gambling website. The best all-rounder
A service provider for making a real gambling website, fully integrated, not twisting, not cheating, not missing quality work. Guaranteed by a large number of users
This is my first-time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing your article with us, and I truly value your information, which I really appreciate, and I would visit your .websiteagain
I appreciate this article for its well-researched content and excellent wording. I got so interested in this material that I couldn’t stop reading. Your blog is really impressive.
See image source
I have been looking for articles on these topics for a long time. 바카라사이트 I don't know how grateful you are for posting on this topic. Thank you for the numerous articles on this site, I will subscribe to those links in my bookmarks and visit them often. Have a nice day.
Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены. Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Интересная статья. У меня ворос для разработчиков, которые смотрели в код популярных библиотек (jQuery, Mootools, Prototype, extJS) как там реализованно вычисление координат?
Так, как здесь описано, только хуже.
За исключением jQuery/dojo toolkit, где тоже реализовано так, как здесь описано, но в dojo вариант offsetParent лучше проработан для Firefox 2 и Safari/Chrome, а jQuery вообще использует parentNode и делает ряд дополнительных измерений для обнаружения багов браузера.
Thank you for sharing such a wonderful and informative article with us. It was very interesting. Although the topic is usually interesting, your interesting writing makes it even more interesting. Thank you again for all you do!
Also Fouad WhatsApp APK is a modified version of WhatsApp Messenger
YOWhatsapp latste versie download
Fouad WhatsApp APK download (Official)
Fouad WhatsApp APK (Anti-Ban)
Давно искал урок как найти абсолютную позицию, "Комбинированный вариант" подходит отлично.
Хорошая статья. Добавлю только что стоит проверять body что он есть, те body&&body.clientTop
Статья супер!МОЛОДЕЦ!
В Opere 9.20 не работает.Видимо в версии 9.62 уже поддерживается.
Большое спасибо за ёмкую статью по существу. А то копать по всем стандартам довольно затруднительно %^>
в MooTools 2.2.3, как на меня сама удачная реализация определения координаторов с поддержкой getBoundingClientRect и бордеров элементов. Позволю себе привести часть исходного кода:
В JQuery глюки с clientY функции offset() и подобных в Опере и Хроме вот один из тикетов:
http://dev.jquery.com/ticket/4583
Очен помогло, спасибо!
У меня пока не работает как надо getBoundingClientRect(), так как у элементов (body и div) выставлено position:relative без смещений и есть margin у внутреннего div относительно body. Правильно отображает только Хром (Сафари 4 не проверял), остальные браузеры не учитывают margin (IE, Opera, FF), приходится его вручную дописывать к координатам.
В своё время много перечитал документации по этому вопросу. Но делалось всё под ужасно бажные IE5.5-6, старую Оперу < 9.1 и Фаерфокс. Наилучшим решение вроде казалось тогда применение getBoundingClientRect(). Но баг с тем, что эксплорер и опера под одни и те же числовые значения рисовали элементы не много, но различающиеся по размеру, иной раз сводил усилия по оформлению страницы к оценке "пойдёт". На тот момент было ужасно интересно заглянуть в код эксплорера и оперы. Кто-нибудь знает как там вычисляется размер элементов и как он соотносится с замерами окон?
Спасибо за отличную статью. Помогла мне очень, реализовал для эффекта PhotoLine, что бы определить место положение самой ленты, для прокрутки ее роликом мыши.
Спасибо. Очень помогла.
Просто хочу сказать Большое Спасибо!
Много-много здоровья и долгих лет жизни автору!
Это то, что я искал!
Точно так же реализован offset в jQuery. Но недавно столкнулся с неожиданным багом - есть у меня
с заданной шириной, всередине его есть спаны и в случаи перехода спана на новую строку - в 1 случае getBoundingClientRect дает некорректный координаты - он видит слово на предыдущей строке, а оно уже в следующей находится.
Браузер safari, платформа ipod.
Молоток! Биг сенкс фор ю
очень полезная статья
С использованием JQuery
$("#block")
.click(function(e){
X = e.pageX-$(this).offset().left;
Y = e.pageY-$(this).offset().top;
})
Вот рабочая функция. Может кому-то пригодиться. Статья понравилась. И это мой к ней комментарий. Чтобы уж совсем не был пустым коммент, выложил сию функцию.
function ElemCoords(obj)
{
var curleft = 0;
var curtop = 0;
if (obj.offsetParent)
{
while (1)
{
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
if (!obj.offsetParent)
break;
obj=obj.offsetParent;
}
}
else if (obj.x || obj.y)
{
curleft += obj.x;
curtop += obj.y;
}
return {"x":curleft, "y":curtop};
}
Получить координаты элемента можно вызовом функции, типа "ElemCoords(object).x".
Отличный код. так лень собирать было самому, просто взял этот. Работает. Спс )
автору искренняя благодарность
На лето 2011 getBoundingClientRect поддерживается всеми актуальными браузерами.
определите пожалуйста координаты элемента/клика на такой странице:
окошко браузера должно быть открыть шире чем на max-width
Превосходно! Браво! Прекрасная статья. Помогла однозначно разрулить проблемы с обработкой ситуаций сложного позиционирования (fixed->absolute->static->absolute) вложенных элементов. Достойный материал.
как насчет такого варианта
Гениально !!!
когда я писал этот (Автор: Гость (не зарегистрирован), дата: 29 ноября, 2011 - 12:56) пример, я имел ввиду что, левый верхний угол body необязательно начинается с верхнего левого угла вьюпорта.
Посмотрите на пример и протестите его на всех IE скроля и не скроля страницу.
Сделать метод, умеющий нормально определять координаты на экране для всех браузеров, включая IE6+, включая режим совместимости, можно.
Для этого нужно всего лишь учесть поправку смещения начала координат относительно вьюпорта:
У меня IE 7. Функция getBoundingClientRect не учитывает свойство таблиц cellSpacing при подсчете.
Супер!
Спасибо, отличная статья - помогла!
что делать, если имеется пустой div или br на странице, как вычислить его координаты, getBoundingClientRect возвращает прямоугольник с нулевыми координатами?
Подскажите, пожалуйста. А можно решить такую задачу - имеется определенное слово, необходимо проверить есть ли оно на экране, если есть - выдать его координаты.
Адреса страниц
Добрый день. Ситуация следующая. Есть множество елементов на странице, создаются они юезром, ограничения на создание по количеству нет. Можно удалять старые и создавать новые. Их можно ресайзить и перетаскивать. Все они имеют братски-сестринские связи. Как мне сравнить координаты одного елемента, выбранного юзером, с другими, для запрета пересечения элементов друг-другом?
Well, this is my first visit to your blog! Your blog provided us valuable information.You have done a marvelous job.
fireboy and watergirl
Все очень открыто с очень четким объяснением проблем. Это было действительно информативно. Ваш сайт очень полезен. zombs royale
Спасибо, отличная статья - помогла! порно
Супер! порно Русское
great post.
great post.
very nice post.
The article gives me a lot of useful and useful information. I have learned a lot from your article.
fnaf
В статье не учтено, что родитель элемента (или любой вверх по цепочке) может иметь position: sticky, и вся схема просто рухнет, хоть с offsetParent, хоть с getBoundingClientRect. При нулевой прокрутке всё сработает верно, а потом.. Впрочем предлагаю просмотреть пример с демонстрацией проблемы:
jsfiddle.net/rafaylik/sf5Lcrjp
Как можно поступить, если родитель имеет position: sticky:
И рабочий пример (спасибо Malleys за совет):
jsfiddle.net/Lk74do8u
Your article content is being very much interested, I am very impressed with your post. I hope to receive more great posts. mapquest driving directions
A good website, I am happy to find useful information from you. I will keep looking for interesting things about your post. surviv io
Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked https://trexgame.co ">t rex game
Thanks for your sharing. Your article is very informative and excellent. And I hope to see your next post soon. You can also access t rex game
Гдз математика 5 клас, готові відповіді онлайн шукай за посиланням https://narodna-osvita.com.ua/gdz/gdz-5-clas-matematika
It’s actually a nice and useful piece of info.
I am glad that you simply shared this helpful info with
us. Please keep us up to date like this. Thanks for sharing 먹튀검증
This article is really a fastidious one it assists
new internet people, who are wishing in favor of blogging. 대출
На сайте https://likebook.ru вы можете скачать электронные книги бесплатно и без регистрации, читать книги онлайн бесплатно. Электронная библиотека онлайн. Литература, аудио книги, все интересные книги fb2, epub, txt. Слушать аудиокниги онлайн.
Новые рингтоны на телефон скачать бесплатно на сайте https://musezone.su/novye-ringtony-na-telefon
Colored dinosaur game is a colorful copy of the original game about dinosaurs. Fast access to your favorite game in an emerging window!
Скачивайте любое видео с Youtube в mp3 и других форматах - mp4, mkv и webm. Это самый быстрый конвертер YouTube в MP3 в мире!
A large number of music emojis can be found on our website! Click on the link and choose!
If you do not have a free QR code generator, that creates unique and high quality QR codes for you, then watch this video. Click on the link - https://chrome.google.com/webstore/detail/free-qr-code-generator/mienaog...
Create QR code for free! Our QR code generator is easy to use. First you choose a size, then add text and images. You're done in just a few minutes. Your custom QR code can be used on posters, business cards, or other promotional items. Did you make something from our generator? Share it with us! We'll feature it on our blog!
Smart tools standard deviation calculator online
You just heard about a new game from a friend called T-Rex dinosaur game. You have never heard about it because it appears in your Google in the absence of Internet connection.
Free QR code generator https://free-qr.com/fr/, un logiciel puissant et pratique, vous permet de générer des codes QR gratuitement sans aucun enregistrement. Vous pouvez personnaliser le design, ajouter un logo, saisir les informations requises et créer un code QR. Avec ce générateur de codes QR gratuit, vous avez la possibilité de concevoir des codes QR impressionnants pour promouvoir votre entreprise.
Each play is a challenge and you will feel the victor's taste. Join the fun game completely free and without ads tiny fishing
Design din egen Coder-kode gratis: Vælg mellem 50 understøttede udbydere, Tilpas designet til at matche dit brand og tilføj et logo. Du skal blot indtaste de nødvendige oplysninger såsom kontaktoplysninger, hjemmeside adresse og åbningstider og oprette Coder-koden. Desuden er en af de største fordele ved vores gratis generator, at den kan bruges både på skrivebordet og på mobiltelefoner!
Gratis QR-kodegenerator er en gratis online-verktøy som gir deg mulighet til å bygge opp en QR-kode. Vi tilbyr deg muligheten til å lage din egen QR-kode, helt gratis og uten registrering. Velge det første alternativet fra hovedmenyen, som svarer til plassering av kontaktinformasjonen for etablering av en QR-kode. Spiller ingen rolle om det er ditt navn, adresse eller andre opplysninger. Last ned QR-i høy kvalitet for gratis via vår nettside!
I just joined the forum so there are so many things I don’t know yet, I hope to have the help of the boards, and I really want to get to know you all on the forum candy crush soda
You’ve probably seen a lot of websites promising to let you download videos, but none of them works as fast and simple as https://savefromyt.site
Amazing blog! Lots of useful information here. I want to say about my article on How to Etcher Download and this function. You can use Install Etcher from the repository on Linux. Keep reading my article.
Meet Running dinosaur and his girlfriend in a fun prehistoric game where you jump across rocky terrain. This is a true copy of the original Google Dinosaur Game from the old days.
My first visit here, really useful - Chargebax
Play mario online. You can select any level out of 32 and also generate a random map.
I am very impressed with your idea! Thank you very much
word unscrambler
Many people wonder where did dinosaur game, the king of dinosaurs go after the old age. In this game, you can take control of a T-Rex and run it to the end. Just swipe up, down or either side to jump over obstacles or knock them down. Follow link -
https://chrome.google.com/webstore/detail/t-rex-running-dinosaur/hklcgjcljkpbpkaammpdgajgoejolfmm
YouTube to mp3 converter for free - https://ytmp3cc.net/. Insert a link and download videos from 300+ video sites (150+ video sites for free without registration!).
Join our club and enjoy a free chat with hot British women for a long time UK Sexclub
A free site to convert online videos in mp3 or mp4 - https://sabakamusic.com ! All you need to do is copy and paste the URL of the desired video. Select the format, adjust the output quality and download your converted file.
Спасибо, что поделились, ваша статья очень хорошая. Вы скачали игру among us mod apk, отличное развлечение.
Thank you for sharing. You can download spotify premium gratis apk to listen to great songs and many great genres of music available in the world today
Casual North Ireland is web platform made for connecting and free sexy chat in United Kingdom, so check out and enjoy
Find some fine local ladies in UK for hot chat all night long on our web platform Sex Chat in Yorkshire
What a great and interesting post. I like your writing skills and appreciate your working effort making on this post.
If you are looking for sexy chat contacts with hot ladies in UK you must to visit East England Sex Ads
sex contacts glasgow is the best web platform created for lonley guys in UK to find fine ladies for casual chat contacts
How to get 2048 tile in 2048 game : A site on how to win and make progress in the 2048 game - https://game2048game.com/gameplay
i'm so glad i accidentally clicked this. slope unblocked :< <3
Great post, There are excellent details you posted here.
thejacketzone.com/
Very interesting discussion here, I will definitely share it with my Instagram promotions friends krootez
Thank you for sharing this useful information, I will visit often to read your articles.
girls games
UK Sluts is great web platform with many local ladies ready for sexy chat with you so check them out
Unfortunately! I really like this girl's style but unfortunately there is no chance anymore, thank you for creating a better style. temple run 3
It’s hard to come by experienced people in this particular topic,but you sound like you know what you’re talking about! Thanks basketball legends
I really enjoyed this site. This is such a Great resource that you are providing and you give it away for free.
I would like to show my appreciation to the writer for rescuing me from this type of situation. After looking through the the net and seeing methods which were not pleasant, I figured my life was over. Living minus the answers to the problems you’ve sorted out by way of your entire short article is a crucial case, and those that might have adversely affected my entire career if I hadn’t come across your web site. Your actual capability and kindness in maneuvering all the pieces was vital. I don’t know what I would have done if I had not come upon such a stuff like this. I can at this time look ahead to my future. Thanks for your time very much for this high quality and results-oriented guide. I won’t hesitate to refer your site to anyone who requires counselling about this issue.
My wife and i ended up being so fortunate that Jordan managed to deal with his inquiry out of the precious recommendations he was given out of the blog. It’s not at all simplistic just to find yourself giving away tactics which often a number of people have been trying to sell. And we realize we’ve got the writer to be grateful to because of that. All of the explanations you made, the easy website menu, the friendships your site help engender – it’s got most fabulous, and it’s really aiding our son in addition to the family understand the topic is enjoyable, and that’s really pressing. Thank you for the whole lot!
Hmm , very interesting thoughts! I think In order for more interested people to read your thoughts, you should post it on Instagram, and use the services of https://viplikes.net/buy-instagram-followers to quickly increase their ammount.
Thank you for this post! I think you can lead youtube blog about java. You have very big potential. If you want to try it use this site https://soclikes.com to buy subscribers
Благодарю за эту инструкцию! Почему бы вам не сделать видео об этом для тиктока? Можно даже купить Лайки Тикток для него
Download Juice WRLD mp3 free and mp4
shemales nrw is the best web place in EU for lonley guys to find hot girls ready for casual contacts
I really enjoyed this site.
ronnie coleman
Thank you for sharing this useful information.
kulture kiari cephus
Great post, There are excellent details you posted here.
soy georgina
The article gives me a lot of useful and useful information. I have learned a lot from your article.
vehicle wraps florida
Создать куар код бесплатно
A most illuminating point of view put across by someone who clearly knows their stuff. You have to decide for yourself how much you're going to go for it this time.
sex in gold coast is the best web platform for casual contacts with young ladies check out and enjoy
Whenever you want to have fun go and check our ladies hook up brisbane
Listen to contemporary literature at https://books2audio.online/contemporary/. Also referred to as Realistic, Contemporary literature is a broad genre that includes stories that could take place in real life with real people. It deals with social issues, personal problems, and helps the reader or listener better understand themselves, as well as other people. Dialects and informal speech are often used by authors in events that take place in the present.
Fontsly Offers The Best Quality Free Fonts Online, Download Free Fonts For Anyone To Use, Play With And Experience.
In one click, download mp3 from YouTube. Search for the video and play it online! Insert a link to the video and choose format for download (mp3, webm, mp4, 3gp).
Nice
Cool!!!!!!
football API
If you want to find casual sex contacts with fine shemales in France check out our web platform Shemale Lille
If you would like to play games on Android then, Treasure of Nadia MOD APK is the perfect game for you. Here we want to make it clear that it eliminates full doubt and entertainment.
The biggest deal for online music lovers is Spotify premium Apk like free app for mobile, iPod, tablets. Spotify Music App for Android is a completely free version application by which you can enjoy millions of podcasts and songs just with a single click.
Welcome to the best Action Game Among US Mod APK. In This article, we share gameplay with you and about the features of the mod menu of Among US game. You can download Among Us Mod
Spotify premium mod APK features.
In this mod version of the original app by the expert innovators at APK MOD.
I will bookmark your web site and take the feeds additionally…I am satisfied to search out a lot of helpful information right here in the publish, we want work out more techniques on this regard, thanks for sharing. 메이저놀이터추천
Thanks for sharing great info about Mod installation for custom songs
i found Spotify Alternative app Deezer Premium APK thats Great.
With Spotify apk Premium you can have a lot of songs and also a lot of great music available in the world.
If you want casual sex contact in EU try to find fine ladies at Transen Anzeige in Brigittenau
Здесь вы сможете прослушать онлайн и скачать в хорошем качестве самые популярные песни за текущий 2022 год.
Roksa bialystok
Roksa pl tczew
Roksa wal
Roksa anglia
If you're searching for dependable and consistent remodeling options to help you transform your house into your dream home, look no further. Home Addition Allentown
Most people don’t give much thought to their plumbing. plumbing Burlingame
Are you doing a major kitchen renovation? Home Remodel Design Chattanooga
Whether or not you think the kitchen is the core of the house, it is undeniably a center of interaction. kitchenremodeltacoma.com
The services that we offer are fully designed to meet your needs and provide you with your dream home. kitchenremodelfremont.com
It must have been a dream come true when you moved into your home years ago. Home Remodel San jose
So.Watch Converter is the easiest online service for converting YouTube videos to mp3. You do not need an account.
Are you trying to look for a kitchen remodeling contractor? Bathroom remodel Providence
We are a Missouri land maintenance team who will see the work through to completion. Home Addition Columbia
Everyone has big dreams for their home. Kitchen remodeling san mateo
Check out our list of services below and get in touch with us if you would like to have your concrete needs met by concrete pros! Concrete Contractor San Jose
Good post, You learned how to calculate the coordinates of an element on a page: quickly and accurately in IE6+/FF3+/Opera 9.62+, and somehow to make it work - in Safari/Chrome/Konqueror.
Soon, Safari/Chrome/Konqueror will support the correct method, so only very rare and buggy browsers will remain outsiders, and everything will work O happimodapk
Soon, Safari/Chrome/Konqueror will support the correct method, so only very rare and buggy browsers will remain outsiders, and everything will work
I really apopriciat your work this is ammazing site thank you for this inewkhusi
I will bookmark your web site and take the feeds additionally…I am satisfied to search out a lot of helpful information right here in the publish, modapkon
Dialects and informal speech are often used by authors in events that take place in the present. apkhall
Rosszlanyok nem, testalkat vagy tartózkodási hely alapján kereshetsz barátokat. A legördülő menü segítségével válassza ki a megfelelő modellt. Az e-kártya tájékoztatást nyújt az árakról és az elvárásokról.
Klubb6 hjälper dig att hitta en partner som du kan ligga med. Det borde inte vara svårt för dig. Den här webbplatsen som är fri från domar fungerar som ett snabbtåg till "vänner med förmåner"-fasen. Det är lika enkelt som att bläddra, chatta och knulla.
So take a look around, we can guarantee that you will find something you like. Retaining Wall Fresno
The same can be said about a landscaping project. Dumpster Rental
design is going to fit your needs perfectly when you have a team working for you that is committed and invested in your home. Bathroom remodel Stockton
is no doubt a great edition of the standard whatsapp app. The additional features and ability to customize are a new feel and aspect as a user.
Until you go, there are seven items you should think about before installing a bathroom sink. Home Remodel Alexandria
We are the one that you are looking for. commercialcleaningbayarea.com
So you can rest and enjoy the feeling Bathroom Design Spokane
We will help you work out a schedule that is convenient for you, your business, or your private lifestyle. Gutter Cleaning
To assist you in preparing the next home renovation project Home Remodel Design Elk Grove
Скачать песни в стиле Диско онлайн бесплатно https://primerussia.info/songs/styles/disko.html. Диско песни скачать бесплатно в mp3
Would you like to widen your kitchen Home Remodel Design Peoria
You’ve decided it is time for a change. Home Remodel Design Lakewood
You'll always want to know what's going to happen. Kitchen Design Denton
Every efficient renovation is the product of our team of builders Kitchen remodel Pasadena
Do you have a strong desire for new flooring, lighting, appliances, countertops, and cabinets? Bathroom remodeling
Professional wedding DJ Services in the Philadelphia area. We provide a personalized music curation experience that makes your wedding unique and unforgettable. Let us turn your dream into reality with our top notch entertainment services. Philadelphia Wedding DJ
Thank you for the good write-up. It in fact was a amusement account it. Look advanced to far added agreeable from you! tree trimming barnet
Vielen Dank dass Sie uns diese berechnung erklärt haben. Ich habe genau nach dieser Rechnungsart gesucht, um den Bedarf von Siberia zu ermitteln.
You like a video and want to listen to it or watch it later when you have no internet access? Our online service allows you to do it. Convert any video into mp4, f4v, 3gp or mp3 high quality for absolutely free! There is nothing else like this on the Internet. https://stormconverter.com converts videos of popular online sources such as YouTube, Vimeo, Dailymotion, Facebook, VK.com, SoundCloud, Vevo, Instagram and AOL.
Download Kendrick Lamar songs from the link - https://vidsrepeats.com/search.php?search=Kendrick-Lamar
Win Tech Best Gaming Website https://wintech.io/th/
Thanks for the javascript info! Roofing company - fredericksburg va roofers
Meta Bet the best of provider game bet
the best of provider of bet game
click
The Best of Provider Bet online
รับทำเว็บพนัน
MEXTRIC is a gambling website. The best all-rounder
A service provider for making a real gambling website, fully integrated, not twisting, not cheating, not missing quality work. Guaranteed by a large number of users
info more : รับทำเว็บพนัน
https://linehello.com/
https://allinlotto.app/
https://konglor888.live/
https://luckyvip77.app/
https://ruay.cam
https://uwin789.app
https://rg3.live/
https://5hengs.app/
https://line99.one/
https://tamjaibet.vip/
https://77lotto.live/
https://alottovip.com/
https://chudjenbet.one/
https://xn--24-3qi4duc3a1a7o.cc
https://akelottobet.casino/
https://fox888.co/
https://richaw.in/
https://setteebet.co/
https://cat888.live/
https://thailot.to/
https://huaydee.one/
https://ltobet.one/
https://huay.day/
https://x4rich.live/
https://som777.live/
https://hihuay.top/
https://jetsadabetnet.com/
https://huaysod.one/
https://lotto432.net/
https://huaylike.one/
https://lottothaibet.app/
https://fo1bet.one/
https://lottorich28.live/
https://melotto.app/
https://thonglotto.live/
https://tode.li/
https://changlotto.bet/
https://lotto88gold.co/
https://luckybet678.app/
https://movewinbet.app/
https://next88.pro/
https://siamlotto.bet/
https://sodsodsod.bet/
https://avsubthai.cc/
https://javthaisub.com/
https://jav-subthai.com/
https://freejavhub.com/
https://javsubnew.com/
https://javguruhd.com/
https://xpornthai.com/
https://javthaihd.com/
Trees play an important part in landscapes Large Tree Removal
going to provide your property with the security and protection that it needs. Fencing Burlingame
From sourcing engineering tools for your home renovation to skillfully building the redesign Home Remodel
When it comes to being a reliable home remodeling company Bathroom remodeling San Jose
MTbet รับทำเว็บพนัน ที่มีให้คุณแบบครบวงจร
เปิดประสบการณ์ในการ รับทำเว็บพนัน รูปแบบใหม่ ออกแบบเว็บไซต์ดีไซน์ทันสมัยพร้อมหน้าเมมเบอร์ ที่มีให้คุณแบบครบวงจร มีให้บริการครบทุกเกมเดิมพันมากกว่า 2,000 กว่าเกม อาทิเช่น ฟุตบอล คาสิโน สล็อต ยิงปลา อี-สปอร์ต หวย จากค่ายเกมชื่อดัง พร้อมระบบฝาก-ถอนอัตโนมัติและรองรับการเติมเงินผ่าน true wallet
รับทำเว็บพนัน
MTbet รับทำเว็บพนัน ที่มีให้คุณแบบครบวงจร
เปิดประสบการณ์ในการ รับทำเว็บพนัน รูปแบบใหม่ ออกแบบเว็บไซต์ดีไซน์ทันสมัยพร้อมหน้าเมมเบอร์ ที่มีให้คุณแบบครบวงจร มีให้บริการครบทุกเกมเดิมพันมากกว่า 2,000 กว่าเกม อาทิเช่น ฟุตบอล คาสิโน สล็อต ยิงปลา อี-สปอร์ต หวย จากค่ายเกมชื่อดัง พร้อมระบบฝาก-ถอนอัตโนมัติและรองรับการเติมเงินผ่าน true wallet
รับทำเว็บพนัน
Making your dream kitchen a reality can be a pleasant and exciting experience bathroom remodel Simi valley ca
Well paved asphalt surfaces can be installed with very little hassle Parking lot paving
It is why we have chosen our concrete contractors very carefully. Driveway Concrete Portland
Smart-Agent | เราเชี่ยวชาญ เรื่องการออกแบบเว็บไซต์ เว็บพนัน, เว็บเอเย่นต์, เว็บสล็อตออนไลน์ ที่ตอบโจทย์ลูกค้ามากที่สุด
รับทำเว็บพนัน
Do you want to turn your outdoor spaces into a relaxing haven? artificial grass
Is there any water damage in your home? water damage repair
Are you looking for a quick, simple, and low-cost way to add more living space to your home? sunroomsanjose.net
You can trust that our staff have been trained in industry best practices visit our website
https://jobs.drupal.org/company/22638
Offering a range of services that will keep your property functioning to its best Power washing
Download online videos in mp3 or mp4 - https://gogetvideo.net
download here the games are completely free for mobile phones and I love that.
This is my first-time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing your article with us, and I truly value your information, which I really appreciate, and I would visit your .websiteagain
thanks forsharingthe great knowledge
I appreciate this article for its well-researched content and excellent wording. I got so interested in this material that I couldn’t stop reading. Your blog is really impressive.
See image source
รับเปิดเว็บพนัน
I have been looking for articles on these topics for a long time. 바카라사이트 I don't know how grateful you are for posting on this topic. Thank you for the numerous articles on this site, I will subscribe to those links in my bookmarks and visit them often. Have a nice day.
chang88 เว็บหวยออนไลน์ chang88 เล่นง่ายดีที่สุด
tmb66 หวยใหม่มาแรง tmb66 หวยออนไลน์
luckybet678 luckybet678 หวยออนลาย
teng1 มาแรง teng1 เว็บหวยออนไลน์
dragon8gold สมัครหวยออนไลน์ dragon8gold เล่นง่ายจ่ายจริง
lottotor สมัครหวยออนไลน์ lottotor
lottokk หวยเล่นง่าย lottokk หวยออนไลน์
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.