簡體   English   中英

使用JQuery浮動div

[英]Floating div using JQuery

我想要在內容的右側有一個浮動div,我手中只有一個腳本,但在左側顯示了div,如何通過編輯以下腳本將div位置向右調整。

這是腳本

//avoid conflict with other script
$j=jQuery.noConflict();

$j(document).ready(function($) {

//this is the floating content
var $floatingbox = $('#floating-box');

if($('#body').length > 0){

  var bodyY = parseInt($('#body').offset().top) - 20;
  var originalX = $floatingbox.css('margin-left');

  $(window).scroll(function () { 

   var scrollY = $(window).scrollTop();
   var isfixed = $floatingbox.css('position') == 'fixed';

   if($floatingbox.length > 0){

      //$floatingbox.html("srollY : " + scrollY + ", bodyY : " 
                                //+ bodyY + ", isfixed : " + isfixed);

      if ( scrollY > bodyY && !isfixed ) {
        $floatingbox.stop().css({
          position: 'fixed',
          left: '50%',
          top: 20,
          marginLeft: -500
        });
    } else if ( scrollY < bodyY && isfixed ) {
          $floatingbox.css({
          position: 'relative',
          left: 0,
          top: 0,
          marginLeft: originalX
    });
     }      
   }
   });
 }
});

我期待着答復。

謝謝保羅

您為什么需要腳本來執行此操作? 在我看來,使用簡單的CSS聲明很容易做到:

.floatingdiv {
  position:fixed;
  left:0;
  top:20px; // or whatever
}

現在,我知道IE6不支持固定定位,但是您至少可以使用hack來使IE6恢復到position:absolute。 周圍有一些建議,但我喜歡這個建議。 在元素的初始樣式聲明之后,將以下內容(包括星號)添加到樣式表中:

* html .floatingdiv { 
    position: absolute;
}

您無法在IE6中獲得固定的效果,但是要權衡的是,由於不需要額外的JavaScript來加載,因此可以提高性能。 從IE7開始,在任何情況下,該固定div的性能都會更加平滑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM