JQuery if условия условия - PullRequest
       1

JQuery if условия условия

0 голосов
/ 21 февраля 2012

У меня есть функция, которая скользит div по горизонтали, манипулируя левым значением. Все работает хорошо, я могу заставить его прокручивать вправо и влево просто отлично, с чем у меня возникают проблемы, так это с моими утверждениями if, которым я верю, и срывающими прокрутку. Я измеряю левое значение div и знаю нижний и верхний предел его перемещения на основе измерений div и экрана. Но это не остановит прокрутку, даже когда левое значение намного превышает пределы в любом направлении. Кроме того, первый оператор if проверяет, являются ли панели скрытыми и нуждаются ли в прокрутке, для чего предназначены переменные panelWidth и portWidth. Не уверен, что мои переменные не обновляются или какие-либо предложения? Спасибо заранее.

Код JQuery

function portfolioSlider() {

var portWidth = $(window).width()-440;
var panelsWidth = panels * 221;
var portDifference = panelsWidth - portWidth;

if (panelsWidth < portWidth) {
}

else if(panelsWidth > portWidth) {

    var leftPosition = $('#web').css('left').replace(/[^-\d\.]/g, '');
    var upperLimit = 220;
    var lowerLimit = 220 - portDifference;
    var hoverInterval;

    if(leftPosition >= lowerLimit, leftPosition <= upperLimit) {

        $(".arrow_right").css('display','block').css('opacity','1')
        $(".arrow_left").css('display','block').css('opacity','1')          
        $(".arrow_right").hover(
            function() {
                hoverInterval = setInterval(
                function() {
                    $('#web').css('left','-=2');
                    leftPosition = $('#web').css('left').replace(/[^-\d\.]/g, '');
                },10);
            },
            function() {
                clearInterval(hoverInterval);
            }
        );
        $(".arrow_left").hover(
            function() {
                hoverInterval = setInterval(
                function() {
                    $('#web').css('left','+=2');
                    leftPosition = $('#web').css('left').replace(/[^-\d\.]/g, '');
                },10);
            },
            function() {
                clearInterval(hoverInterval);
            }
        );          
    }       
    else {
    }       
};
};

portfolioSlider()

HTML на самом деле не имеет значения, это просто div с панелями изображений в нем, который отлично работает. Еще раз спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Это

 if(leftPosition >= lowerLimit, leftPosition <= upperLimit) {

не является допустимым Javascript.

Вы имели в виду логическое AND ?

 if(leftPosition >= lowerLimit && leftPosition <= upperLimit) {

т.е. в математической записи:lowerLimit <= leftPosition <= upperLimit

0 голосов
/ 21 февраля 2012

Почему вы не используете jQuery.animate ()?Вы можете так же легко сделать что-то вроде

$(".arrow_right").hover(
    function() { this.animate("left", animateTo); },
    function() { this.animate("left", animateFrom); }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...