Модальное окно, jQuery, top.

Печать RSS
291

F
Автор
Землянин
0
Как сделать чтобы модальное окно всегда было привязано к верху окна браузера а не к верху самой страницы, а то получается так что открываешь картинку где-то в низу страницы и листаешь в верх что бы ее посмотреть.

Добавлено через 01:45 сек.
$(id).css('top',  winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);
Вот вместо этих формул нужно что то другое, или совсем другим способом.
F
Автор
Землянин
0
JS окон:
<script type="text/javascript">
    $(document).ready(function() {
$("#body").append('<div id="boxes"><div id="dialog" class="window"><div id="bboodd"><div id="header" class="cf"></div><div id="main" class="cf"><div id="content-2"><center><div id="content-2-1"></div><center></div></div><div id="footer" class="cf"></div></div></div></div><div id="mask"></div></div>');        
//select all the a tag with name equal to modal
	$('a[name=modal]').click(function(e) {
	   
       var imgId = $(this).attr("imgId");
	       $("#content-2-1").load("imgZoom.php",'imgId=' + imgId);
		//Cancel the link behavior
		e.preventDefault();
		//Get the A tag
		var id = $(this).attr('href');
	
		//Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		//Set heigth and width to mask to fill up the whole screen
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		
		//transition effect		
		$('#mask').fadeIn(1000);	
		$('#mask').fadeTo("slow",0.8);	
	
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
              
		//Set the popup window to center
		$(id).css('top',  winH/2-$(id).height()/2);
		$(id).css('left', winW/2-$(id).width()/2);
        //$(id).css('top',  0);
		//$(id).css('left', 0);
	
		//transition effect
		$(id).fadeIn(2000); 
	       
    });
	
	//if close button is clicked
	$('.window .close').click(function (e) {
		//Cancel the link behavior
		e.preventDefault();
		$('#mask, .window').hide();
	});		
	
	//if mask is clicked
	$('#mask').click(function () {
		$(this).hide();
		$('.window').hide();
	});	
    
    
  


    });
</script>
F
Автор
Землянин
0
CSS окон:
<style>

#mask {
  position: fixed;
  left:0;
  top:0;
  z-index:9000;
  background-color:#000;
  display:no ne;
}
  
#boxes .window {
  position: absolute;
  left:0;
  top:0;
  min-width: 1000px;
  display:no ne;
  z-index:9999;
  padding:20px;
  float: right;
  border: 1px solid gray;
}

#boxes #dialog {
  min-width: 1000px; 
  padding:10px;
  background-color:#ffffff;
}
</style>
А

Чатланин
0
исправь на
#boxes .window { 
  position: fixed; 
}
F
Автор
Землянин
0
тогда если окошко слишком длинное оно не будет прокручиваться (например если там после фото идут коментарии)
П

Пацак
0
Можно узнать, на сколько пикселей прокручена страница и прибавлять это значение. В чистом js как-то так: window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop
F
Автор
Землянин
0
6. Im-ieee, немного не понял это разные способы узнать px или это один способ который можно присвоить переменной?
П

Пацак
0
7. 6680, один способ. var scrlY=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;
F
Автор
Землянин
0
тоже не совсем то((( нужно чтобы оно открывалось сразу в зоне видимости в плотную к топу но чтобы назад в верх крутить не льзя было, только в низ до конца коментарий
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск