- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好吗?我的问题:
如何控制或指定文档滚动到通过鼠标滚轮和/或抓取滚动条描述的所需位置的方式。我想要的是克服页面滚动的特定默认方法。
目前,页面会根据滚轮上的每个“凹口”向右跳转到 x# 像素。或者直接拖动滚动条到您所在的位置。我正在寻找的是 jquery 的简单扩展,可以应用某些滚动规则。原理很简单。施加加速,这将防止页面在没有首先加速的情况下移动得太快。可设置为 px/sec 的速率,并可选择应用缓动函数...页面可以滑动/移动/拖动的最大 px/sec。第三是减速规则,当页面接近其目标位置时应用(以%,px?)。这可能必须以多种方式之一来计算,并且可能更棘手。即,当将最后 25 个像素滚动到目标位置时,会应用减速。还有更多...我想要准备的主要问题是确保我们完全支持小页面滚动并且不会出现故障。
什么样的 jQuery 方法可以用来以这种方式控制文档?_凯尔
更新:::感谢您关注此问题(如果您愿意)。好消息。找到了一个很棒的插件,希望可以处理它以支持所需的效果,哟!我已经实现了一个完整的页面容器,并使用这个漂亮的 jScrollPane 脚本来控制页面的滚动 http://jscrollpane.kelvinluck.com/fullpage_scroll.html
页面的性能已经有很大的差异。滚轮上的每个滚动槽口都是浏览器 native 滚动槽口的三分之一到一半,因此移动速度较慢,这很好,当然可以调节。
不过,我们仍然有页面移动的“停顿-停顿-停顿”方法。
我自己写了 javascript,但更多的是我重写了它。我认为需要做的是一个由要沿着页面滚动的像素构建的“队列”,总时间复合:然后将动画足迹定义为三个阶段并执行,即缓动加速、最大滚动速度阶段和减速阶段。
有人可以就我们如何做提供任何建议吗
将 mousescrollwheel 与其滚动页面的 native 功能分离。
监听鼠标滚动的凹口;如果出现缺口:初始化核心函数以启动页面的移动,同时还要监听并向“队列”添加额外的缺口点击,该“队列”将重新计算并应用于窗口的滚动,替换之前的总距离滚动,在计算下一个总滚动距离之前,这提供了一种预测目的地和减速的方法。开始运动的核心功能不想重新启动,因为加速时可能会发生多个凹口点击,但只需重新计算何时何地减速即可。
再次抱歉,尚未发布任何实际代码,不完全确定从哪里开始,希望有人知道 mwintent 是否适用于此,如果是的话:可能还有一些想法如何对滚动应用减速,这似乎是想要的效果和当前插件的状态之间唯一的两个区别是相似的。
最佳答案
我想做的是在本身不支持浏览器、默认情况下关闭浏览器或实现不良的浏览器上模拟浏览器的平滑滚动。
感谢 Lubric 的回答,我想出了这个解决方案:
$(function () {
var top = 0,
step = 55,
viewport = $(window).height(),
body = $.browser.webkit ? $('body') : $('html'),
wheel = false;
$('body').mousewheel(function(event, delta) {
wheel = true;
if (delta < 0) {
top = (top+viewport) >= $(document).height() ? top : top+=step;
body.stop().animate({scrollTop: top}, 400, function () {
wheel = false;
});
} else {
top = top <= 0 ? 0 : top-=step;
body.stop().animate({scrollTop: top}, 400, function () {
wheel = false;
});
}
return false;
});
$(window).on('resize', function (e) {
viewport = $(this).height();
});
$(window).on('scroll', function (e) {
if (!wheel)
top = $(this).scrollTop();
});
});
在页面上放置一些足够长的内容以形成滚动条。然后使用鼠标滚轮。它适用于每个浏览器。我使用了 jQuery-1.7.2 和 Lubric 帖子中提到的 mousescroll 插件。
step 变量表示每个鼠标滚轮事件上滚动的像素数。我发现 ~55 像素是大多数系统上的默认值。
此外,您可能想更改动画的速度,除了需要其余的代码逻辑才能使事情正常工作。
编辑:请注意,我已将上述功能提取到一个方便的 jquery plugin 中。 .
关于jquery - 如何对鼠标滚轮、jQuery 强制执行 "smooth scrolling"规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560714/
我有一个“有趣”的问题,即以两种不同的方式运行 wine 会导致: $> wine --version /Applications/Wine.app/Contents/Resources/bin/wi
我制作了这个网络抓取工具来获取网页中的表格。我使用 puppeteer (不知道 crontab 有问题)、Python 进行清理并处理数据库的输出 但令我惊讶的是,当我执行它时 */50 * * *
JavaScript 是否被调用或执行取决于什么?准确地说,我有两个函数,它们都以相同的方式调用: [self.mapView stringByEvaluatingJavaScriptFromStri
我目前正在使用 python 做一个机器学习项目(这里是初学者,从头开始学习一切)。 只是想知道 statsmodels 的 OLS 和 scikit 的 PooledOlS 使用我拥有的相同面板数据
在使用集成对象模型 (IOM) 后,我可以执行 SAS 代码并将 SAS 数据集读入 .Net/C# 数据集 here . 只是好奇,使用 .Net 作为 SAS 服务器的客户端与使用 Enterpr
有一些直接的 jQuery 在单击时隐藏打开的 div 未显示,但仍将高度添加到导航中以使其看起来好像要掉下来了。 这个脚本工作正常: $(document).ready(funct
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 4 年前。 这里是 Java 新手,我正在使用 NetBeans 尝试一些简单的代
如果我将它切换到 Python 2.x,它执行 10。这是为什么? 训练逻辑回归模型 import keras.backend as
我有两个脚本,它们包含在 HTML 正文中。在第一个脚本中,我初始化一个 JS 对象,该对象在第二个脚本标记中引用。 ... obj.a = 1000; obj.
每当我运行该方法时,我都会收到一个带有数字的错误 以下是我的代码。 public String getAccount() { String s = "Listing the accounts";
我已经用 do~while(true) 创建了我的菜单;但是每次用户输入一个数字时,它不会运行程序,而是再次显示菜单!你怎么看? //我的主要方法 public static void main(St
执行命令后,如何让IPython通知我?我可以使用铃声/警报还是通过弹出窗口获取它?我正在OS X 10.8.5的iTerm上运行Anaconda。 最佳答案 使用最新版本的iTerm,您可以在she
您好,我刚刚使用菜单栏为 Swing 编写了代码。但是问题出现在运行中。我输入: javac Menu.java java Menu 它没有给出任何错误,但 GUI 没有显示。这是我的源代码以供引用:
我觉得这里缺少明显的东西,但是我看不到它写在任何地方。 我使用Authenticode证书对可执行文件进行签名,但是当我开始学习有关它的更多信息时,我对原样的值(value)提出了质疑。 签名的exe
我正在设计一个应用程序,它使用 DataTables 中的预定义库来创建数据表。我想对数据表执行删除操作,为此应在按钮单击事件上执行 java 脚本。 $(document).ready(functi
我是 Haskell 新手,如果有人愿意帮助我,我会很高兴!我试图让这个程序与 do while 循环一起工作。 第二个 getLine 命令的结果被放入变量 goGlenn 中,如果 goGlenn
我有一个用 swing 实现迷你游戏的程序,在主类中我有一个循环,用于监听游戏 map 中的 boolean 值。使用 while 实现的循环不会执行一条指令,如果它是唯一的一条指令,我不知道为什么。
我正在尝试开发一个连接到 Oracle 数据库并执行函数的 Java 应用程序。如果我在 Eclipse 中运行该应用程序,它可以工作,但是当我尝试在 Windows 命令提示符中运行 .jar 时,
我正在阅读有关 Java 中的 Future 和 javascript 中的 Promises 的内容。下面是我作为示例编写的代码。我的问题是分配给 future 的任务什么时候开始执行? 当如下行创
我有一个常见的情况,您有两个变量(xSpeed 和 ySpeed),当它们低于 minSpeed 时,我想将它们独立设置为零,并在它们都为零时退出。 最有效的方法是什么?目前我有两种方法(方法2更干净
我是一名优秀的程序员,十分优秀!