Jump to content

DjTarik

User
  • Posts

    698
  • Joined

  • Last visited

Everything posted by DjTarik

  1. Тогда меняй таблицу на див, ему position: relative; Относительно него абсолютно позиционируй слова. top: 50%; left: 0; (левому) right: 0; (правому) и обоим margin-top: "минус половина высоты";. Высоту строк сам задай и отцентрируешь слова внутри. Всё.
  2. На сколько строк могут растягиваться ваши слова слева и справа? Там только по одному слову? Или может быть и в 2-3 строки?
  3. Первое, что прищло на ум - если это элемент дизайна - то нафига там таблицы)
  4. Однозначно. Тогда не прокатит. Нужно узнать у автора, зачем ему центрирование, и какова может быть высота.
  5. Ячейке вертикальное выравнивание по центру, правому слову - "флот райт". Вроде всё, если я правильно понял задачу. Если нет - давайте скрин того, что необходимо получить.
  6. Эмм... =) Не совсем) Забудь про кнопку "Отправить". Там проблем нету. Есть кнопка "Подсказка". Работает так: Я лошара, не знаю английского языка. Кликаю в поле, где нужно ввести верное слово. Думаю пару минут. Т.к. я лошара и ничего не знаю - я жму кнопку "Подсказка". Идёт запрос на сервак и я получаю в ответ первую букву слова. Как мне выбрать именно тот инпут, на который я кликнул? Вот в чём загвоздка. onblur() сработает сразу, я подсказку я могу захотеть получить и потом, когда уже написал слово, вернулся переписать и т.д. Поэтому "Подсказка" и сделана отдельной кнопкой. (есть сайт с похожим функционалом (вернее таким же, но без решения моей проблемы) если найду - покажу завтра)
  7. Задача была такая (подробно): Есть текст (на иностранном языке), в нём некотоых слов не хватает, а на их месте - текстовые поля. Пользователь может заполнить поля - и, нажав на кнопку, проверить, правильно ли он их ввёл. С этим проблем нету) Вторая кнопка - "Подсказка". Работает так: я не знаю слова - жму на "подсказку". Нужно отловить, на каком поле был ввод (чтобы знать, подсказку к какому слову выводить), и только после нажатия на кнопку (НЕ само по себе и НЕ мгновенно) выполнить запрос. Каждое нажатие на кнопке выводит одну букву слова в поле, на котором был инпут) Вот такой "модный" скрипт)
  8. Отправляю аяксом. Пишу на чистом JS, без фреймворков. Ну что-то типо этого и оставил: затирать буду по нажатию на кнопку. Но сам факт, что нельзя узнать, какой инпут был в фокусе последним меня не радует)
  9. Тогда нужно обнулять и всё остальное - т.е. клик на тексте, и в любом другом месте... =) Есть такое дело. Я уже пол инета облазил - так что плюсы тоже есть) 1. Такая задача) 2. Проверка происходит на сервере. 3. Тогда возникает проблема, связанная с пунктом 1. Неужели нету какого-нить стандартного метода получения такого рода информации? Может можно как-нить отменить последние onblur() ? если потом происходит щелчок по кнопке?
  10. Не понял тебя. Как мне потом узнать, где в последний раз был "фокус"? Так и делал - тогда если я через некоторое время на той же странице опять нажму на "Отправить" (ничего не вводя в инпуты) - я получу фокус последнего элемента, хотя он и не был выбран. Поэтому юзал onfocus() и onblur(). А задача такая: при отправке формы аяксом проверять именно то поле, на котором был фокус, а не всё форму.
  11. Проблема такая: Имеется форма с кучей полей (input, к примеру). Допустим, в некоторые поля в любом порядке вносится информация. После нажатия на кнопку "Отправить" - нужно знать, какой из инпутов последним был в фокусе? Обыскал инет - ничего путного нету. Пробовал так: Всем полям - по 2-а события: onfocus() и onblur(). На onfocus() - заносим в переменную например id элемента. При выходе из фокуса - убираем. Проблема в том, что при нажатии на кнопку - фокус на инпуте тоже теряется. Не знаю, что делать...
  12. Ребята, кто подскажет?
  13. Не совсем понял про "итератор". Хотел сделать так: // <![CDATA[ // The document is loaded --> onload = function() { runingLine.iterator(); } // --> var runingLine = {}; runingLine.info = [ ['RunLineLrt', 50, 'ltr'], //['RunLineRtl', 50, 'rtl'] ]; runingLine.iterator = function() { for (var i=0; i<runingLine.info.length; i++){ var val_1 = runingLine.info[i][0]; var val_2= runingLine.info[i][1]; var val_3 = runingLine.info[i][2]; runingLine.initial(val_1, val_2, val_3); } } // RuningLine initialization --> runingLine.initial = function (id, value, direction) { // direction can be 'ltr' or 'rtl' --> obj = document.getElementById(id); wrapper = obj.parentNode; speed = Math.round(1000/value); // quantity of pixels in a second --> obj.style.visibility = 'visible'; if (direction == 'ltr') { posStart = wrapper.offsetWidth; // start coordinate --> posFinish = -(obj.offsetWidth); // finish coordinate --> runingLine.traffic.ltr(); } else if (direction == 'rtl') { posStart = -(obj.offsetWidth); // start coordinate --> posFinish = wrapper.offsetWidth; // finish coordinate --> runingLine.traffic.rtl(); } obj.onmouseover = function() { clearTimeout(timer); } obj.onmouseout = function() { if (direction == 'ltr') { runingLine.traffic.ltr(); } else if (direction == 'rtl') { runingLine.traffic.rtl(); } } } runingLine.traffic = new Traffic(); function Traffic() { // RuningLine traffic 'left to right' --> this.ltr = function() { if (posStart >= posFinish) { posStart-=1; // change coordinate --> obj.style.left = posStart+'px'; timer = setTimeout(arguments.callee, speed); } else { posStart = wrapper.offsetWidth; // start coordinate --> posFinish = -(obj.offsetWidth); // finish coordinate --> runingLine.traffic.ltr(); } } // --> // RuningLine traffic 'right to left' --> this.rtl = function() { if (posStart <= posFinish) { posStart+=1; // change coordinate --> obj.style.left = posStart+'px'; timer = setTimeout(arguments.callee, speed); } else { posStart = -(obj.offsetWidth); // start coordinate --> posFinish = wrapper.offsetWidth; // finish coordinate --> runingLine.traffic.rtl(); } } // --> } // ]]> Но не получилось. Получилось, что переписал код, а ошибка та же =) вот тут: runingLine.info = [ ['RunLineLrt', 50, 'ltr'], //['RunLineRtl', 50, 'rtl'] ]; мой массив с данными. Вот так: runingLine.iterator = function() { for (var i=0; i<runingLine.info.length; i++){ var val_1 = runingLine.info[i][0]; var val_2= runingLine.info[i][1]; var val_3 = runingLine.info[i][2]; runingLine.initial(val_1, val_2, val_3); } } хотел пробегать по массиву. Чего я не понимаю? O_o вот сылка для наглядности: http://tarik.kasperovich.ru/test_10/index.html Как верно построить цикл, что бы одна и та же функция двигала сразу несколько строк?
  14. Да, именно это событие мне и надо. Спасибо, теперь всё понял. Только осталось продумать, почему дергается так заметно)
  15. Там только про то, как узнать координаты и размеры. Мою задачу не решает.
  16. И что именно мне там смотреть? (где-то пол года назад читал это всё, есть в закладках =). Про то как выяснить высоту и смещение я знаю. Как отследить прокрутку колёсиком и скроллом?
  17. Ребята, я прекрасно знаю все эти способы) Верстаю не первый год. Тут вся задача именно в том, как это замутить на JS. Другие решения не интересуют.
  18. Задача: Нужно сделать position: fixed; на JS. А конкретно - расположить див поверх всего в верхней части окна. Решил взять за основу position: absolute; и скриптом отсчитывать координаты. Как-то так: width: 100%; height: 30px; position: absolute; left: 0; top: 0; z-index: 100; obj.style.top = document.getElementsByTagName('html')[0].scrollTop + "px"; Проблема: Прокрутка. Что можно сделать, чтобы учитывать прокрутку колесом мыши, тяганием скролла и т.д. Или у меня изначально неверный подход?
  19. Спасибо, понял. И самый главный вопрос: Нужно запустить одновременно 2 или 3 бегущих строки. В моём случае хотел сделать так: onload = function() { runingLine.initial('RunLineLrt', 50, 'ltr'); runingLine.initial('RunLineRtl', 50, 'rtl'); } // --> Но так не пашет. И по идее, это логично. Так как у меня там таймауты. Как (можно только в теории) такое делается? Каков принцип?
  20. Спасибо, Помогло. Я и забыл о существовании window.parent. А как на счёт этого: 1. У меня есть объект "var runingLine = {};". Я от него создавал функцию "runingLine.initial()", чтобы как-то удобнее скомпоновать свой код. Это вообще верный подход? Где можно почитать об этом? (в смысле, как улучшить код и как грамотнее работать с объектами) 2. У меня есть объект "var runingLine = {};". Я от него создавал "runingLine.traffic = {};" и потом ещё "runingLine.traffic.rtl()" и т.д. Можно ли так делать, или это неграмотно? Т.е. меня интересует, как правильно и грамотно писать код.
  21. Кстати - перестало работать в IE: Пишет, что не поддерживается вот это: parent = obj.parentNode; Не могу понять, что ж ему не нравится? O_o
  22. Спасибо... Нашёл еще на хабре один плагин - вроде должен мне подойти.
  23. Ну строка-то у меня работает. Проблема в другом: 1. У меня есть объект "var runingLine = {};". Я от него создавал функцию "runingLine.initial()", чтобы как-то удобнее скомпоновать свой код. Это вообще верный подход? Где можно почитать об этом? (в смысле, как улучшить код и как грамотнее работать с объектами) 2. У меня есть объект "var runingLine = {};". Я от него создавал "runingLine.traffic = {};" и потом ещё "runingLine.traffic.rtl()" и т.д. Можно ли так делать, или это неграмотно? Т.е. меня интересует, как правильно и грамотно писать код.
  24. Абсолютно верно. Именно из-за того, что находится в контентной части. У меня тоже из-за таблиц и из-за списков. ХЗ что делать, как решать данную проблему...
  25. А вот такая конструкция мне поможет? (function() { })( ); по идее должна. Типо обернуть свои функции в анонимную - и всё. Нигде пространство имён не нарушится?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy