代码之家  ›  专栏  ›  技术社区  ›  Justin Soliz

jquery在ie中的参数5899无效

  •  0
  • Justin Soliz  · 技术社区  · 16 年前

    我试过用 Moving Boxes ASP.NET MVC中的jquery插件。它适用于除IE以外的所有浏览器。
    这是插件代码。我想知道是否有人知道IE中可能有什么不同,可能是沿着IE解析宽度的方式的东西?还是固定宽度?

    $(function () {
    
    var totalPanels = $(".scrollContainer").children().size();
    
    var regWidth = $(".panel").css("width");
    var regImgWidth = $(".panel img").css("width");
    var regTitleSize = $(".panel h2").css("font-size");
    var regParSize = $(".panel p").css("font-size");
    
    var movingDistance = 200;
    
    var curWidth = 300;
    var curImgWidth = 250;
    var curTitleSize = "15px";
    var curParSize = "12px";
    
    var $panels = $('#slider .scrollContainer > div');
    var $container = $('#slider .scrollContainer');
    
    $panels.css({ 'float': 'left', 'position': 'relative' });
    
    $("#slider").data("currentlyMoving", false);
    
    $container
        .css('width', ($panels[0].offsetWidth * $panels.length) + 135)
        .css('left', "-195px");
    
    var scroll = $('#slider .scroll').css('overflow', 'hidden');
    
    function returnToNormal(element) {
        $(element)
            .animate({ width: regWidth })
            .find("img")
            .animate({ width: regImgWidth })
            .end()
            .find("h2")
            .animate({ fontSize: regTitleSize })
            .end()
            .find("p")
            .animate({ fontSize: regParSize });
    };
    
    function growBigger(element) {
        $(element)
            .animate({ width: curWidth })
            .find("img")
            .animate({ width: curImgWidth })
            .end()
            .find("h2")
            .animate({ fontSize: curTitleSize })
            .end()
            .find("p")
            .animate({ fontSize: curParSize });
    }
    
    //direction true = right, false = left
    function change(direction) {
    
        //if not at the first or last panel
        if ((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; }
    
        //if not currently moving
        if (($("#slider").data("currentlyMoving") == false)) {
    
            $("#slider").data("currentlyMoving", true);
    
            var next = direction ? curPanel + 1 : curPanel - 1;
            var leftValue = $(".scrollContainer").css("left");
            var movement = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance;
    
            $(".scrollContainer")
                .stop()
                .animate({
                    "left": movement
                }, function () {
                    $("#slider").data("currentlyMoving", false);
                });
    
            returnToNormal("#panel_" + curPanel);
            growBigger("#panel_" + next);
    
            curPanel = next;
    
            //remove all previous bound functions
            $("#panel_" + (curPanel + 1)).unbind();
    
            //go forward
            $("#panel_" + (curPanel + 1)).click(function () { change(true); });
    
            //remove all previous bound functions                                                           
            $("#panel_" + (curPanel - 1)).unbind();
    
            //go back
            $("#panel_" + (curPanel - 1)).click(function () { change(false); });
    
            //remove all previous bound functions
            $("#panel_" + curPanel).unbind();
        }
    }
    
    // Set up "Current" panel and next and prev
    growBigger("#panel_3");
    var curPanel = 3;
    
    $("#panel_" + (curPanel + 1)).click(function () { change(true); });
    $("#panel_" + (curPanel - 1)).click(function () { change(false); });
    
    //when the left/right arrows are clicked
    $(".right").click(function () { change(true); });
    $(".left").click(function () { change(false); });
    
    $(window).keydown(function (event) {
        switch (event.keyCode) {
            case 13: //enter
                $(".right").click();
                break;
            case 32: //space
                $(".right").click();
                break;
            case 37: //left arrow
                $(".left").click();
                break;
            case 39: //right arrow
                $(".right").click();
                break;
        }
    });
    

    (});

    1 回复  |  直到 13 年前
        1
  •  1
  •   user113716    16 年前

    贾斯汀-我对你没有太多的答案,但如果它似乎是围绕 width 属性,尝试使用jquery .width() 方法获取宽度。

    因此,而不是:

    var regWidth = $(".panel").css("width");
    var regImgWidth = $(".panel img").css("width");
    

    尝试:

    var regWidth = $(".panel").width();
    var regImgWidth = $(".panel img").width(); 
    

    也许jquery做了一些修正。告诉我进展如何。