Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
73 / 17 / 0
Регистрация: 23.12.2010
Сообщений: 203
1

Сворачивание окна по клику в любом месте окна браузера

19.07.2013, 15:28. Показов 2566. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую уважаемые форумчане. Есть сайт bm05.ru. Верху над логотипом есть две разворачивающиеся формы отправки сообщений: "Задайте нам вопрос и Онлайн заявка". Они разворачиваются и сворачиваются при клике непосредственно на них. Нужно сделать, чтоб они сворачивались при клике на любом месте браузера. Буду очень признателен за помощь. Прилагаю код.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
var array = new Array();
var speed = 10;
var timer = 10;
 
// Loop through all the divs in the slider parent div //
// Calculate seach content divs height and set it to a variable //
function slider(target,showfirst) {
 var slider = document.getElementById(target);
 var divs = slider.getElementsByTagName('div');
 var divslength = divs.length;
 for(i = 0; i < divslength; i++) {
 var div = divs[i];
 var divid = div.id;
 if(divid.indexOf("header") != -1) {
 div.onclick = new Function("processClick(this)");
 } else if(divid.indexOf("content") != -1) {
 var section = divid.replace('-content','');
 array.push(section);
 div.maxh = div.offsetHeight;
 if(showfirst == 1 && i == 1) {
 div.style.display = 'block';
 } else {
 div.style.display = 'none';
 }
 }
 }
}
 
// Process the click - expand the selected content and collapse the others //
function processClick(div) {
 var catlength = array.length;
 for(i = 0; i < catlength; i++) {
 var section = array[i];
 var head = document.getElementById(section + '-header');
 var cont = section + '-content';
 var contdiv = document.getElementById(cont);
 clearInterval(contdiv.timer);
 if(head == div && contdiv.style.display == 'none') {
 contdiv.style.height = '0px';
 contdiv.style.display = 'block';
 initSlide(cont,1);
 } else if(contdiv.style.display == 'block') {
 initSlide(cont,-1);
 }
 }
}
 
// Setup the variables and call the slide function //
function initSlide(id,dir) {
 var cont = document.getElementById(id);
 var maxh = cont.maxh;
 cont.direction = dir;
 cont.timer = setInterval("slide('" + id + "')", timer);
}
 
// Collapse or expand the div by incrementally changing the divs height and opacity //
function slide(id) {
 var cont = document.getElementById(id);
 var maxh = cont.maxh;
 var currheight = cont.offsetHeight;
 var dist;
 if(cont.direction == 1) {
 dist = (Math.round((maxh - currheight) / speed));
 } else {
 dist = (Math.round(currheight / speed));
 }
 if(dist <= 1) {
 dist = 1;
 }
 cont.style.height = currheight + (dist * cont.direction) + 'px';
 cont.style.opacity = currheight / cont.maxh;
 cont.style.filter = 'alpha(opacity=' + (currheight * 100 / cont.maxh) + ')';
 if(currheight < 2 && cont.direction != 1) {
 cont.style.display = 'none';
 clearInterval(cont.timer);
 } else if(currheight > (maxh - 2) && cont.direction == 1) {
 clearInterval(cont.timer);
 
 }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2013, 15:28
Ответы с готовыми решениями:

Как заставить блок с position fixed останавливаться и прилипать в нужном месте окна браузера?
Господа спецы по JS, подскажите, пожалуйста, решение. Есть HTML код: &lt;!DOCTYPE HTML&gt; &lt;html&gt; ...

Сворачивание окна на терминале
Народ привет! В терминале если придерживать правый верхний угол секунд 5 то окно сворачивается, ну...

Вызов модального окна по клику на object
Доброго всем дня! Есть сайт на котором обитает народ &quot;от мала до велика&quot;. Хочется сделать так,...

Перезагрузка окна браузера
начал учить js неделю назад , добрался до браузерной части и первый раз столкнулся с необходимостью...

3
33 / 33 / 6
Регистрация: 14.03.2013
Сообщений: 89
19.07.2013, 19:22 2
Ваш сайт не доступен, а вообще делается это так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
   document.onclick  = function(e){
       e = e || window.event
       var target = e.target || e.srcElement
       
       if (target.id  != 'mydiv'){
           // Спряттать блок
       } else  {
          //.........
       }
                
   }
0
73 / 17 / 0
Регистрация: 23.12.2010
Сообщений: 203
19.07.2013, 19:45  [ТС] 3
Цитата Сообщение от alokazay Посмотреть сообщение
Ваш сайт не доступен
Напугали. ) Все доступно

Добавлено через 4 минуты
Цитата Сообщение от alokazay Посмотреть сообщение
Ваш сайт не доступен, а вообще делается это так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
   document.onclick  = function(e){
       e = e || window.event
       var target = e.target || e.srcElement
       
       if (target.id  != 'mydiv'){
           // Спряттать блок
       } else  {
          //.........
       }
                
   }
а куда этот код вставлять в какое место я ничего в этом не понимаю?
0
425 / 167 / 48
Регистрация: 05.12.2012
Сообщений: 855
22.07.2013, 13:54 4
webarts, туда же, где находится тот скрипт, который вы выложили.
0
22.07.2013, 13:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2013, 13:54
Помогаю со студенческими работами здесь

Запись видео с окна браузера
Пишу диплом: есть сайт, на котором имеются видеолекции с презентациями(на одной половине видео с...

Определение максимальной высоты окна браузера
Здравствуйте, Никак не могу найти решение для следующей задачи: Как Вы знаете у каждого типа...

Событие на закрытие окна браузера пользователем
Доброго времени суток всем! Помогите разобраться и решить такой вопрос: Есть открытое окно...

Расстояние от элемента до края окна браузера
Здравствуйте. Есть некий див 200px на 200px имеющий position: absolute. Как посчитать расстояние в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru