Для создания полной иллюзии выпадающего списка необходимо, бы он появлялся непосредственно под текстовым полем. Если бы текстовое поле имело абсолютную позицию, то все было бы до~ просто. Однако на практике текстовые поля редко позициош по абсолютным координатам, что создает определенные пробле позиционировании выпадающего списка. Для расчета координат яврых необходимо разместить выпадающий список, следует воспользо-' свойствами текстового поля of f setLeft, of f setTop и of f setParent.
Свойства of fsetLeft и of fsetTop содержат информацию о том, как дале-> отстоят левая и верхняя границы элемента от off setParent. Свойст-»off setParent обычно, но не всегда, характеризует родительский эле-Таким образом, чтобы получить абсолютную координату эле¬мента по оси X, надо сложить значение свойства offsetLeft и всех его родительских элементов (вплоть до элемента ):
fAutoSuggestControl.prototype.getLeft = function () {
var oNode = this.textbox; var iLeft = 0;
while(oNoae.tagName != "BODY") { ; '-ILeft += oNode.offsetLeft; :oNode = oNode.offsetParent; -
return iLeft; t>= " "
Метод getLef t() начинается с того, что в переменную oNode записывает¬ся ссылка на текущий элемент, а текущее значение координаты X ус¬танавливается равным 0. В цикле while производится обход всех вы¬шележащих элементов с добавлением на каждом шаге значения свой¬ства oNode. off setLeft к переменной iLeft до тех пор, пока не будет до¬стигнут элемент .
Тот же алгоритм применяется для вычисления координаты Y:
I AutoSuggestControl.prototype.getTop = function () {
var oNode = this.textbox; var iTop-= 0;
while(oNode.tagName != "BODY") { ,iTop += oNode.offsetTop; oNode* = oNode.offsetParent;
return iTop; t ...
Эти два метода служат для вычисления координат выпадающего списка.