2009-12-05 59 views
1

我有一個div(帶類觸發器)與圖像和該div是在與id容器的div。容器div的定位被設置爲相對的,這導致疊加層出現在右下角,並且當圖像較大時,它將會出現在屏幕之外。jquery覆蓋錯誤的定位

我該如何解決這個問題?

我看這一個,但是這不會是我的一個很好的解決方案,我不能移動它之外的主要的div和我無法刪除的div容器的相對位置 - >Jquery tools Overlay CSS Conflict, Image positioned under the overlay

我張貼在論壇上,但沒有給予任何幫助 - >http://flowplayer.org/tools/forum/40/32440

+1

你想讓它出現在哪裏? – matpol 2009-12-05 10:25:51

+0

在頁面中間 – Christophe 2009-12-05 15:56:25

回答

1

這可以通過將覆蓋元素移到相對定位的div之外來解決。

你可以在應用覆蓋方法之前用jquery輕鬆完成這個工作,例如,

<div style="position: relative; top: -5px;"> 
    <a href="#" class="overlayTrigger" rel="myOverlay">My overlay trigger</a> 
    <div id="myOverlay"> Testing 123 </div> 
</div> 

<script> 
jQuery(function($) { 
    $("a[rel].overlayTrigger").each(function() { 
     var el = $(this); 
     var target = el.attr('rel'); 
     $(target).appendTo('body'); 
     el.overlay({ 
      target: target, 
      top: "center", 
      expose: { 
       color: '#333', 
       loadSpeed: 200, 
       opacity: 0.9 
      } 
     }); 
    }); 
}); 
</script> 
+0

感謝:D,但我要改變模板,它應該解決我的問題:)我仍然會將您的答案標記爲已接受;) – Christophe 2010-04-29 13:31:30

1

我發現與IE8,即使我把覆蓋代碼只是在關閉身體標記之前,它仍然不會正確顯示。只有以上內容:$(target).appendTo('body');成功了!這可能是由於其他JavaScript寫入DOM。簡單的事情,用它來確定。