用于在仍处于视图中时更改DIV偏移的JQuery算法

时间:2013-07-03 23:38:37

标签: javascript jquery html5 algorithm

希望你能够提供帮助。

我的示例代码:

http://jsfiddle.net/RevengerTT/YZtyj/1/

我正在尝试制定一个算法,该算法将捕获offset()。left并计算出它是否已将DIV“stretchflex”移出视图状态。

我真的很想解决这个问题(在观看快速视频后立即开始使用JQuery编码)。

我在三个变量中工作过,我认为应该给我我需要的值,但我遇到的问题是var z = $("#stretchflex").width()并不代表DIV的“实际”宽度,而是可见的它的宽度。

谁能看到我出错的地方?

        $("#SFPanLeft").click(function () {
            var x = $("#SFHolder").width()
            var y = $("#stretchflex").offset().left
            var z = $("#stretchflex").width()
            $("#x").html("X : " + x.toString());
            $("#y").html("Y : " + y.toString());
            $("#z").html("Z : " + z.toString());
            if (x > (z + y)) {            /* <----This is the bit which doesn't work */
                var left = $("#stretchflex").offset().left
                left -= 176
                $("#stretchflex").css({
                    left: left + 'px'
                });
            };
        });

非常感谢您提前提供的帮助 - 想不到有多少次我通过搜索这个网站找到了我需要的答案:)

1 个答案:

答案 0 :(得分:0)

认为我已经对此进行了排序。

万一有人发现这个......

        $("#SFPanLeft").click(function () {
            var x = $("#SFHolder").width();
            var y = $("#stretchflex").offset().left;
            var z = $("#stretchflex").get(0).scrollWidth; /* using scrollWidth fixes */
            $("#x").html("X : " + x.toString());
            $("#y").html("Y : " + y.toString());
            $("#z").html("Z : " + z.toString());
            if (x < (z + y)) {                            /* updated algorithm */
                var left = $("#stretchflex").offset().left
                left -= 176
                $("#stretchflex").css({
                    left: left + 'px'
                });
            };
        });