2010-10-25 78 views
1

我需要計算視口內div的寬度。如果我在我的div上使用.css(寬度),它只是計算完整的寬度。計算視口內div的寬度

var $Windowwidth = $(window).width(); 
var $lefty = $("#gallerytop"); 
var $GalleryTopWidth = parseInt($lefty.css('width')); 
$("#footer").click(function() { 
    alert($Windowwidth) 
    alert($GalleryTopWidth) 
}); 

什麼,我想完成如下:

我有一個DIV覆蓋我的窗口的完整寬度(100%,超越

我的努力來計算當前的代碼)。我有2個按鈕,用於將該div分配給左側和右側,每個241像素。如果我的移動div已經到達我的視口中的某個點(例如,div的右端,點擊右鍵,現在處於我的視口/窗口的中間),我可以設置停止;現在我不希望它可能再點擊右邊的按鈕)。

任何人都可以幫忙嗎?

謝謝!

回答

1
var $aantal = $("#gallerytop img").size() * $("#gallerytop img:first").width(); 
var $viewportsize = parseInt($(window).width()/$("#gallerytop img:first").width()); 
var $overflow = $("#gallerytop img").size() - $viewportsize; 
var $clickcount = 0; 
var $extrabijtellen = 0; 
var $isScrolling = false; 
var $extrabijtellendynamisch = $(window).width()/10; 

$("#next").click(function() { 
    var $lefty = $("#gallerytop, #gallerybottom"); 
    if ($clickcount < $overflow && !$isScrolling) { 
     $isScrolling = true; 
     if ($clickcount == ($overflow - 1)) { 
      $extrabijtellen = $extrabijtellendynamisch; 
     } 
     else { 
      $extrabijtellen = 0; 
     } 
     $lefty.stop().animate({ 
      left: (parseInt($lefty.css('left'), 10) - ($("#gallerytop img:first").width() + $extrabijtellen)) 
     }, "normal", function() { $isScrolling = false; }); 
     $clickcount++; 
    } 
}); 

$('#prev').click(function() { 
    var $righty = $("#gallerytop, #gallerybottom"); 
    if ($clickcount > 0 && !$isScrolling) { 
     $isScrolling = true; 
     if ($clickcount == ($overflow - 1)) { 
      $extrabijtellen = $extrabijtellendynamisch; 
     } 
     else { 
      $extrabijtellen = 0; 
     } 
     $righty.stop().animate({ 
      marginLeft: (parseInt($righty.css('marginLeft'), 10) + ($("#gallerytop img:first").width() + $extrabijtellen)) 
     }, "normal", function() { $isScrolling = false; }); 
     $clickcount--; 
    } 
}); 

if (($aantal) > $viewportsize) { 
    $("#prev, #next").css("display", "block"); 
} 
0

我可能會使用我的div的左邊位置($(....).offset().left)來控制它是否到達我的視口中的那個點。

+0

這不會幫助我的情況作爲移動DIV的寬度可變(動態積累).. – Mathijs 2010-10-25 07:44:54

+0

我真的不明白,該層可以有任何寬度,其左邊的位置將是相同的,不是嗎? – netadictos 2010-10-25 08:16:11

+0

是的,這有點難以解釋。無論如何,我自己找到了。相當複雜!我發佈了下面的答案。不管怎麼說,還是要謝謝你! – Mathijs 2010-10-25 08:45:56