标签: touch

touchend事件属性

如果我通过移动设备捕获所有touchend事件:

$(document.body).bind('touchend', function (e) {
var touch = e.touches[0]; // doesnt work
...
Run Code Online (Sandbox Code Playgroud)

我需要从e参数中获取touch.screenX,touch.screenY,touch.clientX和touch.clientX.我见过的所有例子都表明e.touches将是一个集合,你可以通过触摸细节获得e.touches[0].在我对ipad的测试中,e.touches总是未定义的.我没有使用任何jquery插件.

还尝试了e.targetTouches,这也是未定义的.

有人可以帮忙吗?

javascript jquery mobile-safari touch touch-event

48
推荐指数
2
解决办法
5万
查看次数

如何在窗外触摸时取消以Activity为主题的对话框?

我有一个带有Dialog主题的活动,当有人在此活动窗口外的任何地方触摸屏幕时,我想关闭(完成)此活动?我怎样才能做到这一点 ?

android dialog touch android-activity

44
推荐指数
7
解决办法
7万
查看次数

如何为移动设备实现滑动手势?

我在AngularJS中有一个应用程序,它有箭头键导航来切换视图.

我想使用滑动触摸设备来实现此导航.我尝试过jGestures库,但刷卡效果不佳.我被建议不要使用jquery mobile.

有没有其他方法来实现滑动?

编辑:它没有检测到干净的滑动.我在多个设备上测试了它,包括iPad,需要多次滑动才能执行操作(在我的情况下路由).

javascript mobile touch gestures swipe

44
推荐指数
6
解决办法
9万
查看次数

JavaScript touchend与点击困境

我正在开发一些javascript UI,并使用很多触摸事件,如'touchend',以改善触摸设备的响应.然而,有一些逻辑问题困扰着我......

我已经看到许多开发人员在同一事件中混合'touchend'和'click'.在许多情况下它不会受到伤害,但基本上该功能会在触摸设备上触发两次:

button.on('click touchend', function(event) {
  // this fires twice on touch devices
});
Run Code Online (Sandbox Code Playgroud)

有人建议可以检测触摸功能,并适当设置事件,例如:

var myEvent = ('ontouchstart' in document.documentElement) ? 'touchend' : 'click';
button.on(myEvent, function(event) {
  // this fires only once regardless of device
});
Run Code Online (Sandbox Code Playgroud)

上面的问题是它会破坏支持触摸和鼠标的设备.如果用户当前正在双输入设备上使用鼠标,则"点击"将不会触发,因为仅为该按钮分配了"touchend".

另一个解决方案是检测设备(例如"iOS")并根据以下内容分配事件: 在iPad上的touchend上调用两次Click事件.当然,上面链接中的解决方案仅适用于iOS(不是Android或其他设备),而且似乎更像是一个"黑客"来解决一些非常基本的东西.

另一种解决方案是检测鼠标移动,并将其与触摸功能相结合,以确定用户是鼠标还是触摸.问题当然是当用户想要检测它时用户可能没有移动鼠标......

我能想到的最可靠的解决方案是使用简单的去抖功能来简单地确保该函数仅在短时间间隔内触发一次(例如100ms):

button.on('click touchend', $.debounce(100, function(event) {
  // this fires only once on all devices
}));
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者有没有人有更好的建议?

编辑:我在帖子后发现了这个链接,它提出了与上面类似的解决方案: 如何绑定'touchstart'和'click'事件但不回复两者?

javascript jquery click touch ios

44
推荐指数
2
解决办法
4万
查看次数

有没有办法在WPF ScrollViewer中启用滚动功能?

我正在尝试在WPF应用程序中创建一个表单,允许用户使用类似iPhone的手势滚动可用字段.因此,我将所有表单控件放在ScrollViewer内的StackPanel中,当屏幕上显示的元素太多时,滚动条会按预期显示.

但是,当我尝试在启用触摸功能的设备上测试时,平移手势(将手指放在曲面上并向上拖动)不会像我预期的那样将可视区域向下移动.

当我简单地在ListView中放置一些元素时,触摸手势就可以了.有没有办法在ScrollViewer中启用相同类型的行为?

我的窗口结构如下:

 <Window x:Class="TestTouchScrolling.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>        
    <ScrollViewer Name="viewer" VerticalScrollBarVisibility="Auto">
        <StackPanel Name="panel">
            <StackPanel Orientation="Horizontal">
                <Label>Label 1:</Label>
                <TextBox Name="TextBox1"></TextBox>
            </StackPanel>
            <StackPanel Orientation="Horizontal">
                <Label>Label 2:</Label>
                <TextBox Name="TextBox2"></TextBox>
            </StackPanel>
            <StackPanel Orientation="Horizontal">
                <Label>Label 3:</Label>
                <TextBox Name="TextBox3"></TextBox>
            </StackPanel>

            <!-- Lots more like these -->

        </StackPanel>
    </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

wpf touch

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

如何以编程方式触发android中的触摸事件?

我想触发这样的触摸事件:

首先,手指在屏幕的(0,50%)处向下触摸并滑动到屏幕的(50%,50%),然后退出(将手指从屏幕上移开)

我发现了一些这样的事情:

MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, pressure, size, metaState, xPrecision, yPrecision, deviceId, edgeFlags);

onTouchEvent(event);
Run Code Online (Sandbox Code Playgroud)

但是,如何模仿上述情况?我需要创建2个活动吗?onTouchDown,onMove等....?谢谢你的帮助.

android gesture-recognition touch gestures

43
推荐指数
2
解决办法
6万
查看次数

如何检测是否触摸了SKSpriteNode

我试图检测我的精灵节点是否被触摸,我不知道从哪里开始.

let Pineapple = SKSpriteNode(imageNamed: "Pineappleimg")
Pineapple.userInteractionEnabled = true
Pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200, y: CGRectGetMidY(self.frame));
self.addChild(Pineapple)
Run Code Online (Sandbox Code Playgroud)

touch touchesbegan sprite-kit skspritenode swift

42
推荐指数
7
解决办法
3万
查看次数

当父视图在iOS中将userInteractionEnabled设置为NO时,如何进行触摸

当父视图具有userInteractionEnabled = NO时,即使其userInteractionEnabled属性设置为YES,其子视图也不会接受触摸事件.

有没有办法在子视图中获取触摸事件?

touch uikit uiresponder ios

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

event.originalEvent jQuery

我目前正沉浸在jQuery学习中心.我要从头到尾.

我刚看完这一段:

同样重要的是要注意事件对象包含一个名为的属性originalEvent,它是浏览器自身创建的事件对象.jQuery用一些有用的方法和属性包装这个本机事件对象,但在某些情况下,你需要通过event.originalEvent例如访问原始事件.这对移动设备和平板电脑上的触摸事件特别有用.

最后一句,"这对移动设备和平板电脑上的触摸事件特别有用." ,真的引起了我的兴趣.但这与学习中心originalEvent到目前为止一样多.

有没有人知道有event.originalEvent关于触摸事件/移动设备的更密集的学习/练习的良好资源?

jquery events touch

41
推荐指数
2
解决办法
5万
查看次数

滑动时防止touchstart

我在移动设备上有一个可滚动的列表.他们希望人们能够通过滑动滚动列表,并通过点击选择一行.

抓住了两者.如果您实际滚动列表,我不希望选择一行.这是我发现的:

滚动时不触发:

  • 点击
  • 鼠标松开

滚动时是否触发:

  • 鼠标按下
  • touchstart
  • touchend

简单的解决方案就是坚持点击事件.但我们发现,在某些黑莓设备上,touchstart之间存在非常明显的延迟,然后触发点击或鼠标.这种延迟足以使其在这些设备上无法使用.

所以这给我们留下了其他选择.但是,使用这些选项,您可以滚动列表而不触发您触摸的行以启动滚动.

解决此问题的最佳做法是什么?

javascript jquery scroll touch touch-event

40
推荐指数
4
解决办法
5万
查看次数