wheelFirefox> = 17中的事件有一个deltaMode属性.使用我正在使用的OS /鼠标,它被设置为1(或DOM_DELTA_LINE).此设置意味着deltaX和deltaY事件值以行而不是像素来度量.果然,如果我假装增量是像素,滚动速度比通常在Firefox中慢得多.
相比之下铬31使用deltaMode的0(或DOM_DELTA_PIXEL),这允许我来模拟与正常速度滚动.
如果我可以将线值转换为像素值,我将全部设置.但我找不到关于"线"是什么的文件.我试图改变font-size和line-height在Firefox中,这并没有改变滚动行为.
任何人都知道如何定义"线"?W3C只是说,"这是许多表单控件的情况."
编辑:这是一个演示奇怪的小提琴.当Firefox处于DOM_DELTA_LINE模式时,像素和线条之间没有一致的比例 - 它遍布整个地方.当我切换到使用触控板而不是鼠标,导致Firefox切换到DOM_DELTA_PIXEL模式时,也没有一致的比例.另一方面,在Chrome 31中,该比率在DOM_DELTA_PIXEL模式下几乎总是非常接近1:1 .
更新:通过在Firefox鼠标滚轮的单蜱滚动,其中deltaMode是DOM_DELTA_LINE,像素增量取决于CSS font-size,但不能在line-height.看一下这个小提琴演示.只有在非常缓慢地打勾时才会出现这种情况.对于速度或动量,线对像素比率在任何特定实例或聚合中都是不可预测的.据我所知,使用DOM_DELTA_LINE模式中提供的增量测量无法模拟Firefox的滚动行为.
在DOM_DELTA_PIXEL模式中,行为几乎完全像素.也就是说,滚动的实际像素与报告的像素增量值之间的比率几乎正好为1,这在相同的小提琴中得到证明.
我向Mozilla提交了一个错误,认为wheel事件在DOM_DELTA_LINE模式下的行为没有用,因为它不可预测(即,它是一个单位和数量都是变量的等式).该问题已被标记为无效,因为预期的行为是wheel …
我最近遇到了这个网站http://www.ascensionlatorre.com/home,我喜欢鼠标滚轮滚动的方式 - 缓和非常顺畅.
我一直在搜索谷歌,但我找不到类似的东西.
有没有人对如何使用jQuery复制这种效果有任何建议?
我的表单上有一个面板,AutoScroll设置为true,因此会自动显示滚动条.
如何使用户可以使用鼠标滚轮滚动面板?谢谢你.
我使用了许多滚动控件:TTreeViews,TListViews,DevExpress cxGrids和cxTreeLists等.当旋转鼠标滚轮时,无论鼠标光标处于何种控制状态,焦点控件都会接收输入.
如何将鼠标滚轮输入指向鼠标光标所在的控制?Delphi IDE在这方面非常有效.
我.vimrc有以下几行
set mouse=a
map <ScrollWheelUp> <C-Y>
map <ScrollWheelDown> <C-E>
Run Code Online (Sandbox Code Playgroud)
但是当我使用鼠标滚轮向上滚动时,我会将文本放在 Vim 上方.例如,如果我刚刚启动Vim,我会收到终端会话文本.我最初在帮助文件上试验鼠标滚轮,然后转到其他文件,因此a选项.
我还需要设置什么?我在终端内使用Snow Leopard和Vim 7.3.
在这里,我刚做了一个轮子.请参阅顶部的终端会话.

我在使用鼠标滚轮在以下XAML中工作时遇到问题,为简化起见,我已简化了这一点:
<ScrollViewer
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"
CanContentScroll="False"
>
<Grid
MouseDown="Editor_MouseDown"
MouseUp="Editor_MouseUp"
MouseMove="Editor_MouseMove"
Focusable="False"
>
<Grid.Resources>
<DataTemplate
DataType="{x:Type local:DataFieldModel}"
>
<Grid
Margin="0,2,2,2"
>
<TextBox
Cursor="IBeam"
MouseDown="TextBox_MouseDown"
MouseUp="TextBox_MouseUp"
MouseMove="TextBox_MouseMove"
/>
</Grid>
</DataTemplate>
</Grid.Resources>
<ListBox
x:Name="DataFieldListBox"
ItemsSource="{Binding GetDataFields}"
SelectionMode="Extended"
Background="Transparent"
Focusable="False"
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style
TargetType="ListBoxItem"
>
<Setter
Property="Canvas.Left"
Value="{Binding dfX}"
/>
<Setter
Property="Canvas.Top"
Value="{Binding dfY}"
/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
在视觉上,结果是一些已知大小的区域,其中DataField从集合中读取的s可以用TextBox具有任意位置,大小等的es 来表示.如果ListBox"样式"区域"太大而无法一次显示",则可以进行水平和垂直滚动,但只能使用滚动条.
为了更好的人体工程学和理智,鼠标滚轮应该是可能的,并且通常ScrollViewer会自动处理它,但ListBox似乎是处理这些事件,使父母ScrollViewer永远不会看到它们.到目前为止,我只能够得到滚轮滚动的工作是设定IsHitTestVisible=False为无论是ListBox …
我正在创建一个视差网站,我想用鼠标滚轮使页面滚动更顺畅,以获得更好的用户体验.我能得到的最好的例子是这个网站:http://www.milwaukeepolicenews.com/#menu=home-page 如果我可以在我的网站上获得类似的东西,平滑的垂直滚动和滚动惯性,那将是很棒的.
我注意到他们正在使用Brandon Aaron的jQuery鼠标滚轮,它很轻,但我只是一个初学者,不能让它自己工作.
我也注意到他们的mpd-parallax.js:
jQuery(window).mousewheel(function(event, delta, deltaX, deltaY){
if(delta < 0) page.scrollTop(page.scrollTop() + 65);
else if(delta > 0) page.scrollTop(page.scrollTop() - 65);
return false;
})
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑
我快到了.看看这个小提琴:http://jsfiddle.net/gmelcul/cZuym/它只需要添加一个缓动方法来滚动,就像密尔沃基警察网站一样.
我有这个可滚动的框架(实际上是画布内的框架).
import Tkinter as tk
class Scrollbarframe():
def __init__(self, parent,xsize,ysize,xcod,ycod):
def ScrollAll(event):
canvas1.configure(scrollregion=canvas1.bbox("all"),width=xsize,height=ysize,bg='white')
self.parent=parent
self.frame1=tk.Frame(parent,bg='white')
self.frame1.place(x=xcod,y=ycod)
canvas1=tk.Canvas(self.frame1)
self.frame2=tk.Frame(canvas1,bg='white',relief='groove',bd=1,width=1230,height=430)
scrollbar1=tk.Scrollbar(self.frame1,orient="vertical",command=canvas1.yview)
canvas1.configure(yscrollcommand=scrollbar1.set)
scrollbar1.pack(side="right",fill="y")
canvas1.pack(side="left")
canvas1.create_window((0,0),window=self.frame2,anchor='nw')
self.frame2.bind("<Configure>",ScrollAll)
Run Code Online (Sandbox Code Playgroud)
我想将鼠标滚轮绑定到滚动条,以便用户可以向下滚动框架,而无需使用滚动条上的箭头按钮.环顾四周后,我添加了一个canvas1像我这样的绑定
self.frame1.bind("<MouseWheel>", self.OnMouseWheel)
Run Code Online (Sandbox Code Playgroud)
这是功能:
def OnMouseWheel(self,event):
self.scrollbar1.yview("scroll",event.delta,"units")
return "break"
Run Code Online (Sandbox Code Playgroud)
但是当我使用鼠标滚轮时,滚动条不会移动.谁能帮我这个?我想要的只是当用户使用鼠标滚轮(在框架区域内/滚动条上)时,画布应自动向上或向下滚动.
我无法在主窗体中获取鼠标滚轮事件.
作为演示,我想出了一个简单的例子:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.panel1.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
this.panel1.MouseMove += new MouseEventHandler(panel1_MouseWheel);
Form2 f2 = new Form2();
f2.Show(this);
}
private void panel1_MouseWheel(object sender, MouseEventArgs e)
{
if(e.Delta != 0)
Console.Out.WriteLine(e.Delta);
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.MouseMove += new MouseEventHandler(Form2_MouseMove);
this.MouseWheel += new MouseEventHandler(Form2_MouseMove);
}
private void Form2_MouseMove(object sender, MouseEventArgs e)
{
if(e.Delta != 0)
Console.Out.WriteLine(e.Delta);
}
}
Run Code Online (Sandbox Code Playgroud)
我在Form2中得到了鼠标滚轮事件但没有Form1任何想法?
干杯,
詹姆士
这是一个证明问题的jsbin示例.
基本上,我有以下javascript将窗口滚动到页面上的锚点:
// get anchors with href's that start with "#"
$("a[href^=#]").live("click", function(){
var target = $($(this).attr("href"));
// if the target exists: scroll to it...
if(target[0]){
// If the page isn't long enough to scroll to the target's position
// we want to scroll as much as we can. This part prevents a sudden
// stop when window.scrollTop reaches its maximum.
var y = Math.min(target.offset().top, $(document).height() - $(window).height());
// also, don't …Run Code Online (Sandbox Code Playgroud) mousewheel ×10
scroll ×4
jquery ×3
c# ×2
javascript ×2
scrollbar ×2
binding ×1
delphi ×1
dom-events ×1
easing ×1
firefox ×1
listbox ×1
panel ×1
parallax ×1
parallax.js ×1
python ×1
scrollviewer ×1
tkinter ×1
vim ×1
winforms ×1
wpf ×1