$(document).height()vs $(document).scrollTop()+ $(window).height()之间的差异

时间:2015-05-10 01:27:35

标签: javascript jquery html css

我正在尝试检测元素何时进入视图,以便我可以将其淡入。我觉得我可以检测到它在页面上的垂直位置,并在滚动值接近它时将其淡入。

我遇到的问题是document.height总是远大于每个页面上document.scrollTop()+ window.height()的值。此外,金额每次都是可变的(我认为这可能是一个问题,因为导航助手会隐藏桌面菜单并插入一个"汉堡"菜单,但更改量会因页面而异。)

因此:

document.body.scrollHeight - $(window).height() == $('body').scrollTop();

在控制台日志中返回false。

有没有人碰到过这个?我完全感到困惑。所有浮动元素都被清除。没有添加元素/节点,也没有添加动态内容的AJAX。

如果有人有任何关于可能导致这种情况的理论,请提前致谢。

1 个答案:

答案 0 :(得分:1)

const UInt32 WM_KEYDOWN = 0x0100; [DllImport("user32.dll")] static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam); public Form1() { InitializeComponent(); } // Sends F5 to Tibia private void button1_Click(object sender, EventArgs e) { Process[] processes = Process.GetProcessesByName("Tibia"); foreach (Process proc in processes) { PostMessage(proc.MainWindowHandle, WM_KEYDOWN, (int)System.Windows.Forms.Keys.F5, 0); } } 是整个身体标签的高度。 document.height是浏览器窗口的高度。条件的左侧从最终计算的高度中减去视口。这并不意味着它等于文档的滚动位置。

$(window).height()

相反,请尝试查找+ - - - - - - + + - - - - - - + + - - - - - - + : : : : : Scroll Top : : : : : : 4 lines : +=============+ : : + - - - - - - + | window | : : | height | : document : | 5 lines | : height : +=============+ : - window : : : : height : : : : ________ : : document : : 13 lines : : height : : : : (offscreen) : : : : 18 lines : + - - - - - - + : : : : : : + - - - - - - + 13lines != 4lines 以获取窗口下方的事物的起始位置。