2012-02-27 4 views
0

У меня есть инструменты jquery, накладывающиеся на один мой блог Wordpress, и у меня есть код, который держит его в том месте, где я хочу, чтобы оно было, когда я изменяю размер окна. Но при первом нажатии для загрузки наложения он отображается в центре страницы, мне нужно, чтобы он установил влево дополнительный 250 пикселей.JQuery Overlay По умолчанию позиционирование

Heres мой код для позиционирования:

$(document).ready(function() { setDef() }); 

function setDef() { 
var w = $('.simple_overlay').width();//get width of overlay 
    var h = $('.simple_overlay').height(); //get height of overlay 
    var l = ($(window).width() - w)/2 + 250; //calculate left property 
    var t = ($(window).height() - h)/2 //calculate top property 
$('.simple_overlay').css({ 'left': l }) 
} 

выше следует вычислить положение по умолчанию (по центру), а затем добавить 250px, но его не добавляя 250. ниже код добавляет 250, когда окно изменен.

$(window).resize(function() { rePosition() }); 

function rePosition() { 
    var w = $('.simple_overlay').width();//get width of overlay 
    var h = $('.simple_overlay').height(); //get height of overlay 
    var l = ($(window).width() - w)/2 + 250; //calculate left property 
    var t = ($(window).height() - h)/2 //calculate top property 
    $('.simple_overlay').css({ 'left': l }) 

Я думаю, что нужно использовать что-то другое, чем (документ) .ready

PS- Вы можете закрыть накладку, нажав в правом верхнем углу, Тереза ​​нет визуального индикатора прямо сейчас, но курсор будет изменение.

Любые предложения?

Спасибо !!!

ответ

2

Просто избавитесь от функции setDef() и поместите вызов rePosition() в обработчик события click на изображении # search-box-nav (или в зависимости от того, какой элемент имеет обработчик кликов).

Если вы обновите страницу и запустить следующий код в консоли затем он имитирует это делать ...

$("#search-box-nav img").bind("click", function() { rePosition(); }); 
+0

я ставлю этот код в функции, но не повезло. Играл с ним немного и до сих пор не повезло. Элемент, который загружает оверлей, является img [rel] ... Вот сценарий, который вызывает наложение: $ (document) .ready (function() { \t $ ("img [rel]"). Overlay ({ \t \t исправлено: ложь, \t \t верха: 160, – Brett

+0

что-то, где-то, является обязательным для события нажатия кнопки мыши на изображение (или контейнеров) в том, что там будет что-то, что исчезает в оверлейном DIV линия после.. 'fadeIn()' (или аналогичный), поместите 'rePosition();' Код, который я вам дал выше, был именно тем, как я тестировал его на вашем сайте, не добавляя его в свой скрипт. Если вы открываете свой сайт, не делайте нажмите кнопку, а затем запустите этот код в консоли, когда вы нажмете кнопку после этого, она находится в правильном месте. Я просто дал вам знать, что я тестировал это и работает. – Archer

+1

Хорошо - я вижу, что вы добавили '$ (" # ab "). Bind (" click ", function() {rePosition();});' Вам нужно переместить это внутри блока 'document.ready', чтобы он запускается только после того, как все загружено. Он работает до того, как изображение находится на странице. Этот скрипт будет привязан только к кнопке about, но не к другим кнопкам, поэтому вам понадобится код, который я дал вам выше, чтобы он работал на всех кнопках. – Archer

Смежные вопросы