[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильный вывод формы ввода данных
sergeiss
Вопрос где-то на стыке познаний HTML и JS.

Итак, коллеги, задача такая. Есть несколько слоёв (разные z-index). Основной - где работает скрипт. Повыше - находится DIV, который сделан полупрозрачным, чтоб через него был виден основной скрипт, но чтобы там ничего низзя было нажать до окончание текущего действия. И еще выше - другой DIV, где сделана форма ввода данных. Ради которой всё и затеяно, собственно говоря.
До некоторой поры оба ДИВа скрыты (display:none). При нажатии некоторой кнопки начитается редактирование данных. Для этого оба ДИВа делаются видимыми, и всё выглядит красиво...

Проблемы такие:

1. Как выставить размер "фонового" ДИВа? Он должен полностью закрывать основной скрипт, чтобы там не было ничего доступного. Сейчас я делаю это так:
  obj=getEl( 'enter_something' );
obj.style.width=window.innerWidth;
obj.style.height=window.innerHeight;

Но если у окна есть что-то за пределами видимой области, то эта часть не перекрывается... Если же я выставляю заведомо большой размер фонового ДИВа, то тогда появляются полосы прокрутки у браузера, которые мне совершенно не нужны.

2. Как корректно выставить положение формы ввода? Пока вот так сделано:
  getEl( dialog_name+'_input' ).style.left=parseInt((window.innerWidth-parseInt(getEl( dialog_name+'_input').style.width))/2)+'px';
getEl( dialog_name+'_input' ).style.top=parseInt((window.innerHeight-parseInt(getEl( dialog_name+'_input').style.height))/2)+'px';


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

Ткните в нужную сторону, плз, чегой-то запутался с этими всеми свойствами :)

Да :), getEl() в коде - это функция document.getElementById()



Спустя 2 часа, 53 минуты, 20 секунд (26.11.2010 - 21:19) sergeiss написал(а):
А я думал, что я один этого не знаю, а все знают...

Спустя 1 час, 34 минуты, 47 секунд (26.11.2010 - 22:54) Игорь_Vasinsky написал(а):
на JS не делал сам вывод. тка на php

делал так -задний фон (закрывающий вась контент width:100% и height: 100%)

а саму форму позиционировать методом тыка.. звисит от размера формы, но делал так же в % left & top

Спустя 2 минуты, 6 секунд (26.11.2010 - 22:56) ApuktaChehov написал(а):
Я думаю, тебе нужно узнать высоту всего документа и нужный див вытянуть на этот размер. Если есть слой который имеет height 100% то можно сделать так:
current_div.style.height = index_div.offsetHeight + 'px';


Ну, если я правильно понял поставленную задачу.

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

Спустя 3 минуты, 14 секунд (26.11.2010 - 22:59) Nord написал(а):
Цитата

1. Как выставить размер "фонового" ДИВа? Он должен полностью закрывать основной скрипт, чтобы там не было ничего доступного. Сейчас я делаю это так:

2. Как корректно выставить положение формы ввода? Пока вот так сделано:


Добавь obj.style.position = fixed, чтобы объект оставался на месте при прокрутке изображения

Спустя 12 минут, 7 секунд (26.11.2010 - 23:11) inpost написал(а):
sergeiss
1) А почему не выставить просто размер 100%, при этом он будет absolute внутри дива relative, тогда 100% будет относительно этого relative?

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

Я бы попытался помочь тебе куда лучше... просто вопрос не очень понятный... или я такой непонятливый...

Может хоть скрин-шоты скинешь сюда? Или мне в личку, как должно выглядеть, и как сейчас... тогда помог бы окончательно и 100%

UPDATE: коммент изменил, перечитай, если читал до этого

Спустя 5 минут, 45 секунд (26.11.2010 - 23:17) Игорь_Vasinsky написал(а):
да и пятница.. пиво...

Спустя 11 минут, 3 секунды (26.11.2010 - 23:28) sergeiss написал(а):
Цитата (Nord @ 26.11.2010 - 23:59)
Добавь obj.style.position = fixed, чтобы объект оставался на месте при прокрутке изображения

Вот это + выставление 100% размеров, и всё это для "фонового" ДИВа помогли smile.gif Всем спасибо smile.gif

Цитата (Игорь_Vasinsky @ 26.11.2010 - 23:54)
а саму форму позиционировать методом тыка..

Нее... Метод "тыка" тут не годится...

Спустя 7 минут, 53 секунды (26.11.2010 - 23:36) sergeiss написал(а):
А скрин-шот такой...

На основной странице жмякнули Добавить или Редактировать (тут видно эти кнопки "под стеклом"). Вызывается форма и одновременно идет запрос на сервер (аякс), который заполняет форму (это при редактировании). Нажали Сохранить - ушел запрос с данными на сервер (опять же аякс), данные внеслись в БД, пришел ответ от сервера (аяксовый же smile.gif), который обновляет список, расположенный выше кнопки Добавить.

Спустя 43 минуты, 55 секунд (27.11.2010 - 00:20) inpost написал(а):
sergeiss
Вроде всё ровно, а что не так?
Можешь показать пример, когда поломалось?

Спустя 15 минут, 39 секунд (27.11.2010 - 00:35) sergeiss написал(а):
inpost - на этой картинке да, уже всё ОК. А когда было не правильно... Крутишь вниз или вправо - а там фон заканчивается и можно получить доступ к основной странице.

А картинку "плохую" мне делать лениво smile.gif


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.