如何设置GNU屏幕以允许鼠标滚轮在回滚缓冲区中滚动?我试图谷歌这个,但大多数点击如何允许屏幕内的应用程序使用滚轮.
在该代码中,我使用鼠标滚轮来放大/缩小HTML5 Canvas.我找到了一些代码来规范Chrome和Firefox之间的速度差异.但是,Safari中的缩放处理要比其中任何一个快得多.
这是我目前的代码:
var handleScroll = function(e){
var delta = e.wheelDelta ? e.wheelDelta/40 : e.detail ? -e.detail/3 : 0;
if (delta) ...
return e.preventDefault() && false;
};
canvas.addEventListener('DOMMouseScroll',handleScroll,false); // For Firefox
canvas.addEventListener('mousewheel',handleScroll,false); // Everyone else
Run Code Online (Sandbox Code Playgroud)
在Chrome v10/11,Firefox v4,Safari v5,Opera v11和IE9上滚动相同数量的鼠标滚轮时,我可以使用哪些代码来获得相同的"delta"值?
这个问题是相关的,但没有好的答案.
编辑:进一步调查显示一个滚动事件'up'是:
| evt.wheelDelta | evt.detail
------------------+----------------+------------
Safari v5/Win7 | 120 | 0
Safari v5/OS X | 120 | 0
Safari v7/OS X | 12 | 0
Chrome v11/Win7 | 120 … 有没有办法scroll在jQuery中获取鼠标滚轮事件(而不是讨论事件)?
我看到JScrollPane.setWheelScrollingEnabled(boolean)启用或禁用鼠标滚轮滚动的方法.有没有办法调整滚动的速度?在我看来,这是非常缓慢的.无论我制作什么尺寸的窗口,滚动每次点击大约三个像素.我希望它远不止于此.
有任何想法吗?
我已经审查并测试了各种功能,以防止身体在div内部滚动,并结合了应该起作用的功能.
$('.scrollable').mouseenter(function() {
$('body').bind('mousewheel DOMMouseScroll', function() {
return false;
});
$(this).bind('mousewheel DOMMouseScroll', function() {
return true;
});
});
$('.scrollable').mouseleave(function() {
$('body').bind('mousewheel DOMMouseScroll', function() {
return true;
});
});
Run Code Online (Sandbox Code Playgroud)
这样做有什么想法或更好的方法吗?
我有一个组合框,我想阻止用户使用鼠标滚轮滚动项目.
有一个简单的方法吗?
(C#,VS2008)
我目前正在开发我的第一个WPF项目并试图使listview可滚动.起初我认为这可以通过简单地限制列表视图的宽度和高度来轻松完成,从而当内容超出其空间时强制滚动条自动出现.这看起来很好,但由于处理的PreviewMouseDown-Event(可以拖动列表的项目),它在选择项目后不起作用.
第二次尝试(使用ScrollViewer)
<ScrollViewer>
<ListView ItemsSource="{Binding FileViewModels}"
PreviewMouseDown="ListView_MouseMove"
Height="450" Width="200"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
当然,只要列表的内容大于其最大高度,就会产生第二个滚动条.选择项目后拖动栏仍然无效.
第三次(非常愚蠢)尝试(禁用滚动条复制)
<ScrollViewer>
<ListView ItemsSource="{Binding FileViewModels}"
PreviewMouseDown="ListView_MouseMove"
Height="450" Width="200"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
这删除了滚动条复制并启用了通过鼠标滚轮滚动但禁用了滚动条,因此您无法通过单击并拖动它来移动.
第四次尝试(ScrollViewer的常量)
<ScrollViewer Height="450" Width="200">
<ListView ItemsSource="{Binding FileViewModels}"
PreviewMouseDown="ListView_MouseMove"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
从ListView中删除了宽度/高度约束并将其移动到ScrollViewer.这将启用滚动条并删除重复项.不幸的是鼠标滚轮不再工作(拖动滚动条工作正常).
有人可以向我解释为什么鼠标滚轮不再工作以及如何解决这个问题?
编辑 也许我应该回到我的第一个解决方案.显然,ListView的模板已经包含ScrollViewer.剩下的问题是,由于处理的PreviewMouseDown事件,我在选择项目后无法拖动滚动条(在这种情况下,通过鼠标滚轮滚动仍然有效).我是否应该以不同的方式处理项目的拖动(在我想要添加滚动条之前,它对我来说很好)?或者有没有办法检测光标是否在滚动条上方(这样我就可以取消选择能够滚动的项目)?或者还有其他建议吗?
我想为mousewheel事件提供干净,漂亮的JavaScript,只支持最新版本的常见浏览器,而没有遗留代码的旧版本,没有任何JS框架.
鼠标轮事件在这里很好地解释.如何简化当前最新版本的浏览器?
我没有访问所有浏览器来测试它,所以caniuse.com对我很有帮助.唉,那里没有提到鼠标轮.
根据Derek的评论,我写了这个解决方案.它对所有浏览器都有效吗?
someObject.addEventListener("onwheel" in document ? "wheel" : "mousewheel", function(e) {
e.wheel = e.deltaY ? -e.deltaY : e.wheelDelta/40;
// custom code
});
Run Code Online (Sandbox Code Playgroud) 我可以通过设置CSS属性来禁用网格中的垂直滚动条overflow-y: hidden.但是,这也消除了使用鼠标滚轮滚动内容的功能.
有没有办法不显示滚动条但仍然允许内容滚动鼠标滚轮或箭头键?
VB6 IDE编辑器的一个令人讨厌的行为,特别是当从VS.NET等更新的工具切换回它时,它无法识别鼠标滚轮!也许VB6在大多数老鼠没有的时候被带出来,但有没有办法解决它所以它确实识别鼠标滚轮?
mousewheel ×10
javascript ×3
c# ×2
jquery ×2
scroll ×2
.net ×1
combobox ×1
gnu-screen ×1
html ×1
ide ×1
java ×1
jscrollpane ×1
scrollviewer ×1
swing ×1
vb6 ×1
wpf ×1