2012-02-27 231 views
0

我有一个jQuery工具覆盖一个我的WordPress博客,我有代码保持它的位置,当我调整窗口的大小时,我希望它。但首先点击加载覆盖,它显示在页面的中心,我需要它设置在左边额外的250px。Jquery覆盖默认定位

继承人我用于定位代码:

$(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 }) 
} 

上述应计算的默认位置(中心),然后添加250像素,但其不添加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 }) 

我想我需要使用比(文件)以外的东西。就绪

PS-您可以通过点击右上角的关闭覆盖,世界上没有视觉指示器,但现在你的光标会更改。

有什么建议吗?

谢谢!

回答

2

只需在#search-box-nav图像(或任何具有点击处理程序的元素)上的Click事件处理函数中删除setDef()函数并将其拨打rePosition()即可。

如果您刷新页面,并运行在控制台然后模仿下面的代码这样做......

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

我把这些代码的功能,但没有运气。玩了一下,仍然没有运气。加载覆盖图的元素是img [rel] ...以下是调用覆盖图的脚本: $(document).ready(function(){$(“img [rel]”)。overlay { \t \t固定的:假的, \t \t顶:160, – Brett 2012-02-27 18:09:55

+0

东西,什么地方,是一个click事件绑定到的图像(或容器)中会有一些在覆盖DIV淡出的行之后。 ''fadeIn()'(或类似的),把'rePosition();'我上面给你的代码就是我如何在你的网站上测试它,而不需要将它添加到你的脚本中。点击按钮,然后在控制台中运行该代码,然后点击按钮,然后在正确的位置。我只是让你知道我测试过了它和它的工作。 – Archer 2012-02-27 18:41:43

+1

好的 - 我看到你添加了'$(“#ab”)。bind(“click”,function(){rePosition();});'你需要将它移入'document.ready'块中,它只在所有内容加载后运行。它目前正在页面上显示图像。该脚本只能绑定到about按钮,而不是其他按钮,所以您需要我上面给出的代码才能在所有按钮上工作。 – Archer 2012-02-27 18:47:16