Появилась необходимость самому написать скрипт который при клике по ссылке плавно из нее выведет на середину экрана блок с необходимым содержимым. а при клике на нем - уберет его обратно.
Написал следующий скрипт (jQuery (jquery-1.4.2.min.js))
код вынесен в отдельный файл
$(document).ready(function (){
parth = Math.round($(window).height()/2); // Получаю округленную половину высоты окна браузера
partw = Math.round($(window).width()/2); // Получаю округленную половину ширины окна браузера
offset = $(".show").offset(); // Получаю координаты .show
offsl = offset.left + 100; // Прибавляю к координатам слева 100px (половина ширины блока .one)
offst = offset.top + 100; // Прибавляю к координатам сверху 100px (половина высоты блока .one)
margintop = parth - offst; // Получаю верхний отступ (для .one)
marginleft = partw - offsl; // Получаю левый отступ (для .one)
$('.one').height($(".show").height()) ; // задаю исходную высоту для .one равную высоте .show
$('.one').width($(".show").width()) ; // задаю исходную ширину для .one равную ширине .show
$(".show").click(function(){ // по событию click объект .one становится видемым, плавно увеличивется и меняет прозрачность, положение на margintop b marginleft
$('.one').show().animate({width: "200px", height: "200px", 'top':margintop, 'left':marginleft, opacity: 1}, 400);
});
$(".one").click(function(){ // по событию click
width = $(".show").width(); // присваиваю переменной значение ширины .show
height = $(".show").height(); // присваиваю переменной значение высоты .show
$('.one').animate({'width':width, 'height':height, top: "0px", left: "0px", opacity: 0.1}, 400, function(){ // объект .one плавно уменьшается до width и height, меняет прозрачность, возвращается на исходное положение
$('.one').hide(); // скрывает .one
}
);
return false
});
});
Все работает. Но если после выполнения скрипта (когда .one вновь скрыт) я изменю размер окна браузера и заново кликну по .show - то блок .one выезжает не на новый центр окна, а на тот что был при первом запуске скрипта.
Если страницу обновить - тогда все нормально, но мне нужно чтобы при каждом клике по .show все переменные высчитывались заново без обновления страницы.
Как это сделать?
Помогите пожалуйста. Заранее спасибо