JQuery if语句条件

时间:2012-02-21 17:17:11

标签: jquery variables if-statement

我有一个通过操纵左边值水平滑动div的功能。一切运作良好我可以让它左右滚动就好了,我遇到的问题是我相信的if语句并阻止它滚动。我正在测量div的左值,我知道它应根据div和屏幕测量值移动的下限和上限。但即使左值远远大于任一方向的极限,它也不会停止滚动。此外,第一个if语句测试面板是否被隐藏并且需要滚动,这就是panelsWidth和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 :(得分:0)

为什么不使用jQuery.animate()?您可以轻松地执行类似

的操作
$(".arrow_right").hover(
    function() { this.animate("left", animateTo); },
    function() { this.animate("left", animateFrom); }
);

答案 1 :(得分:0)

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

无效Javascript。

你的意思是布尔 AND

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

即。用数学符号表示:lowerLimit <= leftPosition <= upperLimit