标签: mousewheel

车轮事件中"线"的高度是多少?(deltaMode = DOM_DELTA_LINE)

wheelFirefox> = 17中的事件有一个deltaMode属性.使用我正在使用的OS /鼠标,它被设置为1(或DOM_DELTA_LINE).此设置意味着deltaXdeltaY事件值以行而不是像素来度量.果然,如果我假装增量是像素,滚动速度比通常在Firefox中慢得多.

相比之下铬31使用deltaMode0(或DOM_DELTA_PIXEL),这允许我来模拟与正常速度滚动.

如果我可以将线值转换为像素值,我将全部设置.但我找不到关于"线"是什么的文件.我试图改变font-sizeline-height在Firefox中,这并没有改变滚动行为.

任何人都知道如何定义"线"?W3C只是说,"这是许多表单控件的情况."

W3C deltaMode

MDN WheelEvent

MDN wheel

编辑:这是一个演示奇怪的小提琴.当Firefox处于DOM_DELTA_LINE模式时,像素和线条之间没有一致的比例 - 它遍布整个地方.当我切换到使用触控板而不是鼠标,导致Firefox切换到DOM_DELTA_PIXEL模式时,也没有一致的比例.另一方面,在Chrome 31中,该比率在DOM_DELTA_PIXEL模式下几乎总是非常接近1:1 .

Chromium问题:实现DOM3轮事件

Bugzilla bug:实现DOM3轮事件

更新:通过在Firefox鼠标滚轮的单蜱滚动,其中deltaModeDOM_DELTA_LINE,像素增量取决于CSS font-size,但不能在line-height.看一下这个小提琴演示.只有在非常缓慢地打勾时才会出现这种情况.对于速度或动量,线对像素比率在任何特定实例或聚合中都是不可预测的.据我所知,使用DOM_DELTA_LINE模式中提供的增量测量无法模拟Firefox的滚动行为.

DOM_DELTA_PIXEL模式中,行为几乎完全像素.也就是说,滚动的实际像素与报告的像素增量值之间的比率几乎正好为1,这在相同的小提琴中得到证明.

向Mozilla提交了一个错误,认为wheel事件在DOM_DELTA_LINE模式下的行为没有用,因为它不可预测(即,它是一个单位和数量都是变量的等式).该问题已被标记为无效,因为预期的行为是wheel …

javascript firefox mousewheel dom-events

40
推荐指数
2
解决办法
5436
查看次数

使用鼠标滚轮平滑滚动缓动效果

我最近遇到了这个网站http://www.ascensionlatorre.com/home,我喜欢鼠标滚轮滚动的方式 - 缓和非常顺畅.

我一直在搜索谷歌,但我找不到类似的东西.

有没有人对如何使用jQuery复制这种效果有任何建议?

jquery scroll mousewheel easing parallax

39
推荐指数
4
解决办法
8万
查看次数

如何使用鼠标滚轮滚动面板?

我的表单上有一个面板,AutoScroll设置为true,因此会自动显示滚动条.

如何使用户可以使用鼠标滚轮滚动面板?谢谢你.

c# scroll panel mousewheel

38
推荐指数
3
解决办法
6万
查看次数

如何指示鼠标滚轮输入控制光标而不是聚焦?

我使用了许多滚动控件:TTreeViews,TListViews,DevExpress cxGrids和cxTreeLists等.当旋转鼠标滚轮时,无论鼠标光标处于何种控制状态,焦点控件都会接收输入.

如何将鼠标滚轮输入指向鼠标光标所在的控制?Delphi IDE在这方面非常有效.

delphi mousewheel

38
推荐指数
3
解决办法
2万
查看次数

在Vim中使用鼠标滚轮

.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.

在这里,我刚做了一个轮子.请参阅顶部的终端会话. 在此输入图像描述

vim scroll mousewheel

38
推荐指数
3
解决办法
4万
查看次数

scrollviewer的子元素阻止滚动鼠标滚轮?

我在使用鼠标滚轮在以下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 …

wpf listbox event-handling mousewheel scrollviewer

30
推荐指数
3
解决办法
2万
查看次数

jquery垂直鼠标滚轮平滑滚动

我正在创建一个视差网站,我想用鼠标滚轮使页面滚动更顺畅,以获得更好的用户体验.我能得到的最好的例子是这个网站: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/它只需要添加一个缓动方法来滚动,就像密尔沃基警察网站一样.

jquery mousewheel smooth-scrolling parallax.js

30
推荐指数
3
解决办法
9万
查看次数

Python tkinter绑定鼠标滚轮到滚动条

我有这个可滚动的框架(实际上是画布内的框架).

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)

但是当我使用鼠标滚轮时,滚动条不会移动.谁能帮我这个?我想要的只是当用户使用鼠标滚轮(在框架区域内/滚动条上)时,画布应自动向上或向下滚动.

python binding tkinter scrollbar mousewheel

28
推荐指数
4
解决办法
3万
查看次数

鼠标滚轮事件(C#)

我无法在主窗体中获取鼠标滚轮事件.

作为演示,我想出了一个简单的例子:

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任何想法?

干杯,

詹姆士

c# mousewheel winforms

26
推荐指数
4
解决办法
8万
查看次数

如何区分手动滚动(通过鼠标滚轮/滚动条)与Javascript/jQuery滚动?

更新:

这是一个证明问题的jsbin示例.

更新2:
这是固定版本归功于fudgey.


基本上,我有以下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)

javascript jquery scroll scrollbar mousewheel

25
推荐指数
1
解决办法
1万
查看次数