簡體   English   中英

在單擊按鈕之前,Hammer.js滑動不起作用

[英]Hammer.js swipe doesn't work until button is clicked

我正在使用Hammer.js庫為觸摸設備添加划動手勢。

我的代碼是:

var bodyElement = document.getElementById('body');
    var swipe = new Hammer(bodyElement);
    swipe.on("swipeleft", function() {
        $(".close-button").click();
    });
    swipe.on("swiperight", function() {
        $(".open-menu").click();
    });

我想做的是在向右滑動時單擊一個按鈕元素,向左滑動時單擊另一個按鈕元素,但這在我首先手動單擊按鈕(.open-menu)之后才起作用,然后一切正常很好(向左滑動,在按鈕上單擊鼠標右鍵)。

我在body元素上具有ID“ body”,我想在用戶滑動到任何位置時滑動工作。

我是否會丟失Hammer.js? 可能是什么問題呢。

似乎嘗試在“ body”上滑動會導致Hammer拋出以下錯誤:

Hammer.js:222未捕獲的TypeError:無法讀取null的屬性'addEventListener'

我猜您需要在不是主體的現有元素上添加滑動偵聽器。

以下代碼對我有用:

<html lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
  <title>Test</title>

  <script type="text/javascript" language="Javascript" src="jquery-1.11.3.min.js"></script>
  <script type="text/javascript" language="Javascript" src="hammer.js"></script>
</head>

<body>
    <div id="wrap" style="position:fixed;top:0px;bottom:0px;left:0px;right:0px;">
        <a href="javascript:void(0);" onclick="javascript:alert ('Open Button');" class="open-menu">Open</a> - <a href="javascript:void(0);" onclick="javascript:alert ('Close Button');" class="close-button">Close</a>
    </div>

    <script type="text/javascript" language="Javascript">
    var bodyElement = document.getElementById ('wrap');
    var swipe = new Hammer (bodyElement);
    swipe.on ('swipeleft', function ()
    {
        $(".close-button").click ();
    });
    swipe.on ("swiperight", function()
    {
        $(".open-menu").click();
    });
    </script>
</body>

</html>

基本上,我已經將鏈接包裝到一個名為“ wrap”的div中,並且刷卡與該div相關聯。 使用我應用於div的樣式,它可以擴展到整個頁面,因此無論如何它基本上就像“ body”一樣。

希望對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM