我的示例代码:
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'
});
};
});
非常感谢您提前提供的帮助 - 想不到有多少次我通过搜索这个网站找到了我需要的答案:)
答案 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'
});
};
});