Рассчитать ширину div в области просмотра - PullRequest
1 голос
/ 25 октября 2010

Мне нужно рассчитать ширину div в области просмотра.Если я использую .css (width) на моем 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 слева и справа на 241px.Я мог бы установить остановку, если мой движущийся div достиг определенной точки в моем окне просмотра (скажем, например, правый конец div, нажав на правую кнопку, теперь находится в середине моего окна / окна просмотра; теперь я больше не хочу нажимать на правую кнопку).

Может кто-нибудь помочь?

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 октября 2010
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 голосов
/ 25 октября 2010

Я бы, вероятно, использовал левую позицию ($(....).offset().left) моего div, чтобы контролировать, достигнет ли он этой точки в моем окне просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...