计算视口中div的宽度

时间:2010-10-25 07:13:18

标签: jquery html width

我需要计算视口中div的宽度。如果我在我的div上使用.css(宽度),它只计算完整的宽度。

我目前尝试计算的代码:

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

我想要完成的是:

我有一个div覆盖我的窗口的整个宽度(100%及以上)。我有2个按钮,用于为每个241px向左和向右设置div。如果我的移动div已经到达我的视口中的某个点(例如,div的右端,通过单击右键,现在位于我的视口/窗口的中间),我将能够设置停止;现在我不想再点击右键了。

有人可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

我可能会使用div的左侧位置($(....).offset().left)来控制它是否到达我视口中的那个点。