只用 JavaScript 怎么实现平滑的 scroll snap?

AlphaRobert排除 CSS 的 scroll-snap,在 Safari 下会奇怪地带动 body 或其他先祖元素滚动,且浏览器兼容也不好。

如果有强迫症的话,定时一段时间检测滚动停止后,再滚动到最近的位置不是很丝滑。假设内容为一堆 24px 高的列表项目:

对于触控,在 scrollend 时计算出最后一小段时间的加速度,然后平滑滚动到对应的位置就可以。

对于鼠标,因为不知道滚动什么时候停止,以及触控板和鼠标的滚动方式也千奇百怪,想到一个基本上不可行的方法:每次触发 wheel 事件后,根据最后一小段时间的 deltaY 和时间的关系插值,推测出滚动结束的时间和终点位置,记 positionOffset 为预期终点位置和最近元素坐标间的距离,time 为允许的缓冲时间,以 1px 为最小分度,每隔 Math.abs(positionOffset) / timescrollTop++--。数值发生变化时(什么数值?)取消之前的计时并重新计时。显然这很麻烦而且根本没有头绪。

有可以支的招吗?

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript:为什么“.deletebutton”的点击事件未触发 - javascript

这是我的代码: ojit_pre 但是当我按下“ a.deletebutton”时,没有确认对话框出现。它只是继续并从数据库中删除我的数据。似乎“ a.deletebutton”的javascript click事件不起作用。任何想法吗? 参考方案 因为它是动态生成的..您需要将事件委托给它$('body').delegate('…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

使用javascript制作python解释器 - javascript

我想使用Javascript制作python解释器。然后,您可以输入python代码,然后网页中的Javascript可以将代码解释为javascript代码,然后运行代码并返回结果。因为我在这方面没有太多经验,所以我需要大四的一些建议。非常感谢 ... 参考方案 您可以使用pypyjs,并且还可以使用详细过程。https://github.com/pypy…