标签: touch-event

我的画布中的触摸事件未按预期工作,我无法确定其不工作的原因

所以我目前正在尝试为网络应用程序创建一个笔记本风格的模块。目前,它在鼠标事件方面工作得很好,但在使用触摸事件时却不行。

//TOUCH LISTENER
theCanvas.addEventListener("touchstart", startT, false);
theCanvas.addEventListener("touchend", endT, false);
theCanvas.addEventListener("touchmove", moveT, false);

//MOUSE LISTENER
theCanvas.addEventListener("mousedown", start);
theCanvas.addEventListener("mouseup", end);
theCanvas.addEventListener("mousemove", move, false);

//MOUSE EVENTS
function start(event) {
  if (event.button === MAIN_MOUSE_BUTTON) {
    shouldDraw = true;

        setLineProperties(theContext);

        theContext.beginPath();

    let elementRect = event.target.getBoundingClientRect();
        theContext.moveTo(event.clientX - elementRect.left, event.clientY - elementRect.top);

        console.log(PenType(mode));
  }
}

function end(event) {
  if (event.button === MAIN_MOUSE_BUTTON) {
    shouldDraw = false;
  }
}

function move(event) {
  if (shouldDraw) {
    let elementRect = event.target.getBoundingClientRect();
    theContext.lineTo(event.clientX - elementRect.left, event.clientY - elementRect.top);
        theContext.stroke()

  } …
Run Code Online (Sandbox Code Playgroud)

javascript browser mobile canvas touch-event

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

为什么 ClipsToBounds 会阻止子视图被触摸?

假设您有一个超级视图,其尺寸小于其子视图。您将clipsToBound超级视图的属性设置为false。如果点击子视图超出父视图边界的突出区域,为什么命中测试返回 nil?

我的理解是,命中测试从子视图开始,一直到超级视图。那么为什么晚于子视图测试的父视图的属性很重要呢?或者命中测试是否从根开始到树视图(例如视图控制器 -> 主视图 -> 子视图)?

我从这里找到了一个自定义命中测试,它确实允许您点击超级视图边界之外的子视图区域,但我不确定为什么反转子视图的顺序会产生影响(它有效,我是只是不知道为什么)。我的示例甚至只有一个子视图。

class ViewController: UIViewController {
    let superview = CustomSuperview(frame: CGRect(origin: .zero, size: .init(width: 100, height: 100)))
    let subview = UIView(frame: CGRect(origin: .zero, size: .init(width: 200, height: 200)))

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(self.superview)
        self.superview.backgroundColor = .red
        self.superview.clipsToBounds = false
        
        self.superview.addSubview(self.subview)
        self.subview.backgroundColor = .blue
         
        let tap = UITapGestureRecognizer(target: self, action: #selector(tapped))
        self.subview.addGestureRecognizer(tap)
    }
    
    @objc func tapped(_ sender: UIGestureRecognizer) {
        print("tapped")
    }
}

class CustomSuperview: UIView {
    override func hitTest(_ …
Run Code Online (Sandbox Code Playgroud)

hittest touch-event ios swift

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

如何在触摸屏时保留onTouchEvent?

当我触摸屏幕时,我有以下方法来处理:

public boolean onTouchEvent(MotionEvent event) {

    boolean touchDown = true;
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            Log.i(TAG,"touching the screen: YES");
        case MotionEvent.ACTION_UP:
            touchDown = false;
            Log.i(TAG,"touching the screen: NO");
    }
    return touchDown;

}
Run Code Online (Sandbox Code Playgroud)

当我触摸屏幕而不移开手指时Logcat的结果是:

touching the screen: YES
touching the screen: NO
Run Code Online (Sandbox Code Playgroud)

直到我从屏幕上释放myfinger,我才想要显示第二个日志.

我做错了什么?

谢谢.

java android touch-event

0
推荐指数
1
解决办法
790
查看次数

iPhone上的jquery toggleclass bug

以下代码显示了#wrap-footer单击时向下滑动调用的菜单#menu-button.单击页面上除菜单之外的任何位置使其向上滑动.

当菜单可见时,#menu-button添加了一个名为"menu-open"的类(用于样式).再次隐藏菜单时,将删除该类.

请注意,我用的选择#wrap-header,#wrap-pre-footer,#wrap-content而不是仅仅htmldocument与iPhone不承认这些.

$(document).ready(function(){
    $("#menu-button a").hide();
    $('#menu-button').append('Menu');

    $('#wrap-header,#wrap-pre-footer,#wrap-content').click(function() {
        $('#wrap-footer').slideUp('slow');
        $('#menu-button').removeClass('menu-open');
    });

    $('#menu-button').click(function(event){
       event.stopPropagation();
       $('#menu-button').toggleClass('menu-open');
       $('#wrap-footer').slideToggle('slow');
    });

    $("#wrap-footer").click(function(e) {
       e.stopPropagation();
    }); 
});
Run Code Online (Sandbox Code Playgroud)

在桌面浏览器上一切都很好.但是在iPhone上,slideToggle工作正常,但是toggleClass永远不会删除该类.因此,如果菜单处于打开状态,则单击页面(但不是#menu-button#wrap-footer)会最小化菜单并删除该类,但#menu-button仅单击最小化菜单并且不会删除该类.

谢谢

iphone jquery touch-event

0
推荐指数
1
解决办法
2961
查看次数

触摸特定位置时如何获得触觉反馈?

当他/她触摸屏幕上的特定位置时,我想给用户一个触觉反馈,由x和y坐标限定,如矩形,如下所示:

if (x > 050
                        && x < 100
                        && y > 50
                        && y < 100) {
// do some code

//then enter haptics feedback
}
Run Code Online (Sandbox Code Playgroud)

我得到的唯一方法是将触觉添加到某些视图,如按钮,是否适用于一般的触摸事件?

提前致谢

android touch-event

0
推荐指数
1
解决办法
2386
查看次数

有没有办法在jQuery或Javascript中确定touchmove事件的速度?

这是一个简单的问题.有没有办法在jQuery或Javascript中确定touchmove事件的速度?我使用css来抓取元素并让它可以抓取,这样可以正常但是如果我更快地移动手指,我不太可能移动到阈值距离但我确实打算翻页,所以有没有办法我可以确定javascript或jQuery中触摸移动事件的移动速度,我可以将阈值调整为较小的值以补偿速度?

    var startX, endX, difference, threshold; 
var startTime, endTime, timeDiff = 151;
$('#animate')
.bind("touchstart", function (e){ 
    e.preventDefault();
    var d = new Date();      
    startTime = d.getTime();
    startX = e.originalEvent.touches[0].pageX; //starting point
    })
.bind("touchmove", function (e){
    e.preventDefault();
    endX =e.originalEvent.changedTouches[0].pageX; //Get the information for finger 
    difference = startX - endX;  //calculate the distance moved.
    var moved = minusScreen - difference; //determine the affected css value.
    $(this).css("left",moved);  //this makes the element moves with my finger.
    })
.bind("touchend", function (e) { 
    var date = new …
Run Code Online (Sandbox Code Playgroud)

javascript performance jquery touch-event touchmove

0
推荐指数
1
解决办法
4500
查看次数

查看寻呼机双击

我在我的应用程序中使用 ViewPager 创建用于滑动图像的滑块。一切工作正常,除了我必须双击缩放图像。但双击在 ViewPager 上不起作用。我尝试了很多解决方案但没有成功。任何帮助表示赞赏。

谢谢

android gesture touch-event android-viewpager

0
推荐指数
1
解决办法
2483
查看次数

如何判断触摸屏是否超过2秒

在不停止主 UI 线程的情况下检查屏幕是否被触摸 2 秒或更长时间的最佳且更优化的策略是什么?

我已经检查了一些示例代码,但我不确定哪种是实现它的最佳方法,而且我还需要在不停止主 UI 线程的情况下完成它。

谢谢

android ontouchlistener touch-event

0
推荐指数
1
解决办法
2056
查看次数

UIWebView和触摸事件

我想在视图中使用自定义触摸事件.有一个Web视图,它是此视图的子视图.我重写了touchBegan和其他功能,但它没有运行.

uiwebview touch-event ios5 swift

0
推荐指数
1
解决办法
3868
查看次数