Javascript Html滚动条:如何避免它到";削减;我的内在因素
这个问题是针对一个自动完成下拉列表,我必须这样做,当你在html文本框中写作时,它会触发 它基本上由一个包含建议元素的div组成,每个元素都是div 我已经到了它开始正常工作的地步,但现在我在包含的div中添加了一个垂直滚动条,以便您可以限制下拉列表的高度,我得到了以下行为: 如果你使用滚动,它会以“像素”的形式上下滚动,因此它会剪切我的元素,使它看起来一点也不光滑 我想重写在使用滚动时上下移动整个div元素的行为。我甚至不知道如何用谷歌搜索这个 任何人都知道这方面的有用资源,或者可以提供关于从何处开始的任何提示,如果可以覆盖滚动移动事件,或者我应该查看另一个方向 提前多谢Javascript Html滚动条:如何避免它到";削减;我的内在因素,javascript,jquery,html,internet-explorer,firefox,Javascript,Jquery,Html,Internet Explorer,Firefox,这个问题是针对一个自动完成下拉列表,我必须这样做,当你在html文本框中写作时,它会触发 它基本上由一个包含建议元素的div组成,每个元素都是div 我已经到了它开始正常工作的地步,但现在我在包含的div中添加了一个垂直滚动条,以便您可以限制下拉列表的高度,我得到了以下行为: 如果你使用滚动,它会以“像素”的形式上下滚动,因此它会剪切我的元素,使它看起来一点也不光滑 我想重写在使用滚动时上下移动整个div元素的行为。我甚至不知道如何用谷歌搜索这个 任何人都知道这方面的有用资源,或者可以提供关于从
注意:我不能使用jquery自动完成插件。你可以实现你自己的滚动条,使用鼠标事件和手动更新位置。你可以实现你自己的滚动条,使用鼠标事件和手动更新位置。你不能点击该元素的“滚动”事件吗(DOM 3 Events为元素提供了一个滚动事件,但不确定它的支持程度),因此每当滚动位置发生变化时,它都会调用一个自己的小例程,通过将滚动位置四舍五入到最近的“凹口”来调整滚动位置
或者,您可以定期轮询滚动位置,并在滚动位置移动时进行调整。这似乎相当跨浏览器。您是否可以点击该元素的“滚动”事件(DOM 3事件为元素提供滚动事件,但不确定其支持程度),这样每当更改滚动位置时,它都会调用您自己的一个小例程,通过将滚动位置四舍五入到最近的“凹口”来调整滚动位置
或者,您可以定期轮询滚动位置,并在滚动位置移动时对其进行调整。这似乎相当跨浏览器。这根本无法做到。,没有解决方案,句号。必须接受此限制 为什么没有解决办法 因为即使您实现了自己的滚动条,您仍然必须依赖于滚动事件,这些事件既不能被取消,也不能阻止冒泡到body元素。实际上,它们不能,您可以调用preventDefault()和stopPropagation()这是标准化机构和浏览器实现者深思熟虑的决定
如果滚动事件是可取消的,那么EïpïrtEïchangeï可能会阻止您滚动到页面底部查看答案;)(别担心,我在“EïpïrtEïchangeï”中使用了一些西里尔字母,因此它们不会得到可索引的提及。)这根本无法做到,没有解决方案,句号。人们必须接受这种限制 为什么没有解决办法 因为即使您实现了自己的滚动条,您仍然必须依赖于滚动事件,这些事件既不能被取消,也不能阻止冒泡到body元素。真的,他们不能,你可以调用preventDefault()和stopPropagation(),直到奶牛回家,它们还在冒泡。这是标准化机构和浏览器实现者经过深思熟虑的决定 如果滚动事件是可取消的,则EöpörtEöchangeö可能会阻止您滚动到页面底部以查看答案;)(别担心,我用了一些西里尔字母在“EƏpƏrtEƏchangeƏ”中,这样它们就不会被索引了)。首先: 使用您自己的滚动条,创建一个滚动事件处理程序。在这里,您可以通过
delta
(可在evt
中找到)使用动画,您可以通过顶部或底部可见元素的offsetHeight
自行设置元素的scrollTop
。此外,如果div高度确实切断了一个元素,只需使上一个或下一个元素稍微“高一点”,即设置它的高度以向上或向下推动切断的元素
第二:
您可以“修补”div,以便只有少数元素可见。当你滚动时,你可以隐藏最上面的一个,并在动画中显示最下面的一个,而不使用scrollTop
或scrollHeight
注意Firefox中的滚动事件。它有另一个名称,但您可以这样测试它:
eventName = eventName === 'mousewheel' ? ((/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : eventName) : eventName;
祝你好运。如果你需要任何帮助,在大约2天,我会有它的实施,因为我也需要一个 首先:
使用您自己的滚动条,创建一个滚动事件处理程序。在这里,您可以通过delta
(可在evt
中找到)使用动画,您可以通过顶部或底部可见元素的offsetHeight
自行设置元素的scrollTop
。此外,如果div高度确实切断了一个元素,只需使上一个或下一个元素稍微“高一点”,即设置它的高度以向上或向下推动切断的元素
第二:
您可以“修补”div,以便只有少数元素可见。当你滚动时,你可以隐藏最上面的一个,并在动画中显示最下面的一个,而不使用scrollTop
或scrollHeight
注意Firefox中的滚动事件。它有另一个名称,但您可以这样测试它:
eventName = eventName === 'mousewheel' ? ((/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : eventName) : eventName;
祝你好运。如果你需要任何帮助,在大约2天,我会有它的实施,因为我也需要一个 Uff,恐怕没有比这更容易的了。。。真是一场噩梦!感谢任何表达“感谢”的东西都像是一张赞成票和一个被接受的答案亲爱的上帝,我变成什么了?@DanielEarwicker就像一个笑话,回答是:“一个乞丐?”。Uff,恐怕没有比这更容易的了。。。真是一场噩梦!感谢任何表达“感谢”的东西都像是一张赞成票和一个被接受的答案亲爱的上帝,我变成了什么