Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2009, 04:22
Новичок на форуме
Отправить личное сообщение для Monster Посмотреть профиль Найти все сообщения от Monster
 
Регистрация: 31.10.2009
Сообщений: 7

Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши)
Здравствуйте, господа!
У меня есть интересная задача, и мне кажется, что решить её может javaScript, а так как с ним я знаком только в общих чертах, прошу у вас помощи. Итак, у меня есть див с бекграундной картинкой.
<a href="http://site.ru">
<div id="golova">
</div></a>

и к нему стиль
#golova {height:298px;background: url('images/header.jpg') no-repeat top center}

Так вот, есть крайняя необходимость реализовать такой функционал:
— при простом клике на хэдере отправляемся по ссылке
— при клике на хэдере с зажатой кнопкой (любой, лучше ctrl) картинка менялась на другую
— в идеале при клике на определённую область картинки в хедере (диве golova) и загрузка не полностью новой картинки, а кусочка поверх старой (чтобы сэкономить на времени загрузки)
Если невозможно, то при нажатии на комбинацию 2-х, лучше 3-х клавишь, смысл в том, чтобы сделать невозможным случайный просмотр нового сообщения.
Насколько я понимаю, должно что-то отслеживать нажатие, типа
onkeydown, и какое либо исполнение потом, но в силу совсем плохого знания яваСкрипт никак не могу решить.
Помогите пожалуйста, хочется сделать скрытую фичу, а времени почти нет
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2009, 04:46
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

"div" в "a" - не валидно.
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2009, 04:58
Новичок на форуме
Отправить личное сообщение для Monster Посмотреть профиль Найти все сообщения от Monster
 
Регистрация: 31.10.2009
Сообщений: 7

Спасибо, что по теме. Как вас понимать? У вас есть другие предложения, как сделать ссылку на весь див, где нет ничего кроме бекграундной картинки? Работает во всех браузерах, всё ок, что смущает?

Господа, удалось сделать такую штуку:
<script type="text/javascript">
  document.onkeydown = function(e) {
    e = e || window.event;
    if (e.shiftKey && e.keyCode == 65) {
 	document.getElementById('golova').style.background ='url(тут полный путь ко второй картинке,
относительный почему-то не берёт)'
    }
    return true;
  }
</script>

Остаюются вопросы:
— можно ли сделать, чтобы реакция была на клавишу + щелчок мышью?
— можно ли, чтобы щелчок если только в определённое место, при нажатой клавише вызывал событие
— можно ли не перегружать картинку целиком, а лишь положить поверх первой кусочек? (Мне нужно просто дорисовать часть к первой картинке)
Да, ещё, можно ли как-то спрятать скрипт от глаз? ЧТобы случайный человек не понимал, как что сделать? На ум призодит base64, но тут тоже не силён.
Спасибо.

Последний раз редактировалось Monster, 31.10.2009 в 07:11.
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2009, 08:48
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Monster
Как вас понимать?
так и понимать.

Сообщение от Monster
У вас есть другие предложения, как сделать ссылку на весь див, где нет ничего кроме бекграундной картинки?
span + display:block = div, только семантически не очень будет, лучше onclick на div. Либо забить на валидность.

Сообщение от Monster
можно ли сделать, чтобы реакция была на клавишу + щелчок мышью?
можно.

Сообщение от Monster
можно ли, чтобы щелчок если только в определённое место, при нажатой клавише вызывал событие
можно.

Сообщение от Monster
можно ли не перегружать картинку целиком, а лишь положить поверх первой кусочек? (Мне нужно просто дорисовать часть к первой картинке)
можно.

Сообщение от Monster
Да, ещё, можно ли как-то спрятать скрипт от глаз?
зачем? Вы тоже мните, что ваш скрипт нечто очень ценное и все захотят его увидеть? Да никому он не уперся.

Сообщение от Monster
ЧТобы случайный человек не понимал, как что сделать?
если он еще не понимает, то что мешает ему, так же как и вам, зайти на форум и спросить.
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2009, 17:25
Новичок на форуме
Отправить личное сообщение для Monster Посмотреть профиль Найти все сообщения от Monster
 
Регистрация: 31.10.2009
Сообщений: 7

Сообщение от Riim
span + display:block = div
Какая-то паника, зачем такие извражения?
Цитата:
лучше onclick на div
и это чистый html + css? Ну, не знаю, на валидаторе, что html, что css «a» на диве проходит без ошибок. Но спасибо, подумаю над вашими советами.
А что насчёт 3-х «можно»?
Дадите совет как это сделать или где прочитать? Времени совсем нет.
А спрятать скрипт хочу, чтобы случайный человек не смог увидеть скрытое непристойное изображение.
Ответить с цитированием
  #6 (permalink)  
Старый 01.11.2009, 01:16
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Monster
Какая-то паника, зачем такие извражения?
я не навязываю, и нет никакой паники.

Сообщение от Monster
реакция была на клавишу + щелчок мышью
на документ вешаешь keydown и keyup, в них смотришь код клавиши (e.keyCode || e.which), если нужный, то меняешь какую-то переменную на true(mousedown)/false(mouseup). В обработчике клика мышки смотришь эту переменную, если true, то:
Сообщение от Monster
клавишу + щелчок мышью

Сообщение от Monster
щелчок если только в определённое место, при нажатой клавише вызывал событие
лучше в обработчике щелчка смотреть где он был. Если нужно именно как написано, то вешаешь на определенное место прозрачный слой и на него событие.

Сообщение от Monster
загрузка не полностью новой картинки, а кусочка поверх старой
к рисунку который поверх другого position:absolute . Что бы left и top считались от div-а, добавь ему position:relative : http://softwaremaniacs.org/blog/2005...t-positioning/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки при перезагрузке + наведении Мария Элементы интерфейса 2 22.08.2009 14:57