![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Добрый день! Сегодня появился вопрос в JS, который я не могу решить своими знаниями.
К примеру есть на странице такие элементы: 1. Ссылка 2. DIV с опросом (Показано на картинке) Как реализовать всплывающий ДИВ поверх ссылки по событию "клик". Всплывший ДИВ живет только 10 сек, потом исчезает и больше не появляется. И по повторному клику на нашей ссылке уже идет нужный переход Огромное спасибо! Присоединённый файл ( Кол-во скачиваний: 18 )
_____.jpg 48,92 Kb--------------------
### JAVA ###### programming ### |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Примерно
|
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Ради IE нужно немного добавить:
|
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 6 Всего: 101 |
Задача решена, но что мешает юзеру сделать так: правый клик мыши, затем нажать Open. Это к тому, что в href тогда не следует держать ссылку.
И для простоты, если задача позволяет, я бы сделал просто замещение текста this.text и this.className нужными значениями, затем обратную установку this.text и this.className + добавление this.href. Тогда не нужны позиции и кроссбраузерность.
-------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Огромное спасибо за помощь!
Сейчас буду разбираться с кодом, чуть позже отпишусь о результатах --------------------
### JAVA ###### programming ### |
|||
|
||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Второй вариант не сумел интегрировать в свой код, а так он работает интересно
Первый вариант - получилось выполнить, но с позициями выведения блока - проблемы А в целом, как внедрить в такой код, что-то максимально простое по этим же алгоритмам?
И если у меня <a href="#">LINK</a> - будет еще выполнено в форме кнопки картинки, это не повлечет за собой изменений? --------------------
### JAVA ###### programming ### |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Проблемы какого рода, конкретнее? Если очень «lot of text», и до контейнера с вопросом и кнопками нужно прокручивать документ с помощью полос прокрутки, то к верхней координате выводимого плавающего div'а нужно прибавлять величину этой прокрутки — типа document.documentElement.scrollTop. Добавлено через 1 минуту и 55 секунд И, кстати не нужно располагать дескриптор <style> в секции <body>. Это невалидно. |
|||
|
||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Проблема связана с тем, что всплывающее окно выводится над ссылкой - не закрывая ее в целом.
Но отойдем от этого, возможна ли такая схема работы скрипта: ссылка у нас задана картинкой ( т.е. высота и ширина есть). Кликаем по этой ссылке и поверх нее появляется другая картинка (не знаю, как лучше картинка или див с текстом) проходит 10 секунд и всплывший элемент - исчезает. Тогда вроде позиционирование не так и важно? Ведь можно отталкиваться от изначальной ссылки и подобрать такие габариты всплывающего элемента, что бы он грамотно перекрывал ее. --------------------
### JAVA ###### programming ### |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
У меня не возникает проблем с позиционированием и перекрытием.
|
|||
|
||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Amphiluke
С позиционированием все стало ОК. А вот таймер теперь не работает: попробуйте нажать на зеленую кнопку "СКАЧАТЬ" http://gamehouse.com.ua/for_girls/perepoloh-na-rancho --------------------
### JAVA ###### programming ### |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Блин, нашел, где ошибка. Разместите всплывающий div в прямо body, а не в другом div. Скрипт расчитан на то, что родительский объект — именно body.
Добавлено через 5 минут и 19 секунд А можно просто заменить это:
на это:
и тогда безразлично, где размещать div. |
||||
|
|||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Вот теперь все здорово! Проблема решенная!
width = sender.getElementsByTagName("img")[0].offsetWidth.toString() + "px"; height = sender.getElementsByTagName("img")[0].offsetHeight.toString() + "px"; А если я в этих строчках меняю "px" на "100 px", то должна увеличиваться длина и ширина всплывающего ДИВа на 100 пикселей? НИкак не могу найти строки, которые отвечают за размеры всплывающего элемента --------------------
### JAVA ###### programming ### |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Чтобы увеличить на 100px, нужно написать:
Пробелы между числом и единицей измерения недопустимы. |
|||
|
||||
| Pitbul |
|
|||
![]() Fruzenshtein ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.4.2008 Где: Киев Репутация: нет Всего: нет |
Все огромнейшее спасибо!=)
На сегодня с ЯваСкриптом закончу=) --------------------
### JAVA ###### programming ### |
|||
|
||||
| HARDMID |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Хм... Работает. А вот если снова нажать, то второй раз див уже не всплывает и пропускает по ссылке.
Жена-тестер уперто нажала во второй раз. И ее пустило. Теперь она знает, что не надо больше читать всякие дивы и их открывать, а надо чуток подождать, и просто потом идти по ссылке. Долго материлась. Сказала нафиг это надо, я хочу быстро и сразу. И закрыла сайт... Это сообщение отредактировал(а) HARDMID - 14.1.2010, 10:13 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |