Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2008, 18:26
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Фиксирование zIndex-ом динамических окон
Здравствуйте!
Помогите написать часть кода для фиксирования zIndex-ом окон. Идея в том что б при отпускании какого либо окна, он оставался поверх всех. При захвате onmousedown и при onmousemove я сделал, но при отпускании, я не знаю как зафиксировать zIndex.
Код я прикрепил, он очень простой в понимании, поэтому надеюсь что кто-нибудь ответит.

Заранее благодарен!
Вложения:
Тип файла: zip WINDOWS.zip (16.8 Кб, 3 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2008, 18:37
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

document.getElementsByClassName is not a function
http://zont.x/win/superWindow.js
Line 117
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2008, 18:39
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

http://squall-anime.h17.ru/
посмотри, может пригодится...
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2008, 19:29
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Я не знаю у меня нет никакой ошибки. Попробуйте так я исправил.
Вложения:
Тип файла: zip WINDOWS.zip (95.3 Кб, 7 просмотров)
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2008, 20:19
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

ты в каком браузере тестишь? Не в опере случаем?
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2008, 20:22
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

MaxIndex = 1;

function browsers() {
        this.ie = (navigator.userAgent.indexOf("MSIE") != -1) ? 1 : 0;
        this.nn = (navigator.userAgent.indexOf("Netscape") != -1) ? 1 : 0;
        this.opera = (navigator.userAgent.indexOf("Opera") != -1) ? 1 : 0;
}
var bw = new browsers();

function $(obj) {
    if(document.all) {
        if(typeof obj == "string") {
            return document.all(obj);
            return false;
        }
    }
    if(document.getElementById) {
        if(typeof obj == "string") {
            return document.getElementById(obj);
            return false;
        }
    }
}

window.onload = function() {
	init();
	document.onmousedown = take;
	document.onmousemove = move;
	document.onmouseup = release;
}

function init() {
	for(var i=1; i<10; i++) {
		var opener = $("opener" + i);
		var closer = $("closer" + i);
		var smaller = $("small" + i);
		if(opener && closer && smaller) {
			opener.onclick = function() {
			var num = this.id;
			      num = num.substr(num.length - 1, 1);
				$("parentparag" +  num).style.display = "block";
				magick($("parentparag" +  num), 99);
			}
			closer.onclick = function() {
			var num = this.id;
			      num = num.substr(num.length - 1, 1);
				$("parentparag" +  num).style.display = "none";
				$("parentparag" +  num).style.opacity = 0;
				if(bw.ie) {	$("parentparag" +  num).filters["alpha"].opacity = 0};
			}
			smaller.onclick = function() {
			var num = this.id;
			      num = num.substr(num.length - 1, 1);
				if($("parentparag" +  num).offsetHeight > 270) {
					resize($("parentparag" +  num), 10, true);
				} else if($("parentparag" +  num).offsetHeight < 30) {
					resize($("parentparag" +  num), 20, false);
				}
			}
		}
	}
}

function resize(whatElem, speed, bool) {
	var elemHeight = whatElem.offsetHeight;
	var step = (bool) ? --elemHeight : elemHeight++;
	if(step) {
		if(bool) {
			whatElem.style.height = parseInt(step - speed) + "px";
			if(step < 40) {
				whatElem.style.height = 29 + "px";
				return false;
			}
		} else {
			whatElem.style.height = parseInt(step + speed) + "px";
			if(step > 250) {
				whatElem.style.height = 280 + "px";
				return false;
			}
		}
	}
	timerID = setTimeout(function() {resize(whatElem, speed, bool)}, 1);
}

function magick(obj, maxOpacity) {
    var cont = (bw.ie) ? obj.filters["alpha"].opacity : obj.style.opacity;
	cont++;
        obj.style.display = "block";
        if(bw.ie) {
                if(obj.filters["alpha"].opacity < maxOpacity) {
                        obj.style.filter = "alpha(opacity = "+parseInt(cont + 1, 10) +")";
                        timerID = setTimeout(function(){ magick(obj, maxOpacity) }, 1);
                }
        } else {
                if(obj.style.opacity < maxOpacity / 100) {
                        if(bw.opera) {
                                obj.style.opacity = cont - 0.95;
                        } else {
                                obj.style.opacity = cont - 0.98;
                        }
                        timerID = setTimeout(function(){ magick(obj, maxOpacity) }, 1);
                }
        }
}
	var offsetX = 0;
	var offsetY = 0;
	var targetEl;
    	function take(e) {
       	  	e = e || window.event;
         	var target = (e.target) ? e.target : e.srcElement;
		var num = target.id;
		if(num != "" && document.getElementById("parent" + num) != null) {
            			if(document.all) {
				targetEl = document.all("parent" + num);
			} else if(document.getElementById) {
				targetEl = document.getElementById("parent" + num);
			}
			document.getElementById("parent" + num).style.zIndex = MaxIndex++; 		// закрепил zIndex на первое место 
		}
		if(targetEl) {
			if(e.pageX) {
				offsetX = e.pageX - target.parentNode.parentNode.offsetLeft;
				offsetY = e.pageY - target.parentNode.parentNode.offsetTop;
			} else if(e.offsetX) {
				offsetX = e.offsetX;
				offsetY = e.offsetY;
			}
			return false;
		}
      	}
	function move(e) {
       	  	e = e || window.event;
		if(targetEl) {
			var targetW = targetEl.offsetWidth;
			var windowW = (window.innerWidth) ? window.innerWidth : document.body.clientWidth; 
               		if (e.pageX && window.innerWidth) {
				var posRight = e.pageX - offsetX + targetW;
				var diff = posRight - windowW;
				if(posRight > windowW) {
					targetEl.style.width = parseInt(targetW - diff, 10) + "px";
				} else if(posRight < windowW && targetW < 500) {
					targetEl.style.width = parseInt(targetW - diff, 10) + "px";
				}
				targetEl.style.left = parseInt(e.pageX - offsetX, 10) + "px";
				targetEl.style.top = parseInt(e.pageY - offsetY, 10) + "px";
			} else if(e.clientX) {
				var posRight = e.clientX - offsetX + targetW;
				var diff = posRight - windowW;
				if(posRight > windowW) {
					targetEl.style.width = parseInt(targetW - diff, 10) + "px";
				} else if(posRight < windowW && targetW < 500) {
					targetEl.style.width = parseInt(targetW - diff, 10) + "px";
				}
				targetEl.style.left = parseInt(e.clientX - offsetX, 10) + "px";
				targetEl.style.top = parseInt(e.clientY - offsetY, 10) + "px";
			}
				if(targetEl.offsetLeft < 0) {targetEl.style.left = 0 + "px"}
				if(targetEl.offsetTop < 0) {targetEl.style.top = 0 + "px"}
		return false
		}
	}
	function release(e) {       	  	
	e = e || window.event;
         	var target = (e.target) ? e.target : e.srcElement;
	var num = target.id;
	if(num != "" && document.getElementById("parent" + num) != null) {
		targetEl = null;
		//document.getElementById("parent" + num).style.zIndex = 0;  				// тут нужно условие  
		}
	}
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2008, 21:49
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

ZoNT, какой загадочный доллар у вас.
Ответить с цитированием
  #8 (permalink)  
Старый 16.08.2008, 12:33
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Какой доллар? где доллар? У меня рубли везде...
Ответить с цитированием
  #9 (permalink)  
Старый 16.08.2008, 20:58
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

ZoNT,
function $(obj) {
    if(document.all) {
        if(typeof obj == "string") {
            return document.all(obj);
            return false;
        }
    }
    if(document.getElementById) {
        if(typeof obj == "string") {
            return document.getElementById(obj);
            return false;
        }
    }
}


Зачем all? Зачем по два return?
Ответить с цитированием
  #10 (permalink)  
Старый 16.08.2008, 21:30
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Ну так это не ко мне вопросы - это код товарища топикстартера...
Я ему z-index только исправил, как он и просил, а остальной код даже не смотрел...
Ответить с цитированием
Ответ



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

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