1

如何使用 Hammer.js。我想要电话间隙中应用程序的滑动视图。**完全正确--->我的意思是一步一步的过程。我发现了一些基于它我尝试实现的东西。它不起作用。Hammer.js中的代码

(function(Hammer) {
    /**
     * ShowTouches gesture
     * requires jQuery
     * show all touch on the screen by placing elements at there pageX and pageY
     * @param   {Boolean}   [force]
     */
    Hammer.plugins.showTouches = function(force) {
        // the circles under your fingers
        var template = '<div style="position:absolute;z-index:9999;left:0;top:0;height:14px;width:14px;border:solid 2px #777;' +
            'background:rgba(255,255,255,.7);border-radius:20px;pointer-events:none;' +
            'margin-top:-9px;margin-left:-9px;"></div>';

        // elements by identifier
        var touch_elements = {};
        var touches_index = {};

        /**
         * remove unused touch elements
         */
        function removeUnusedElements() {
            // remove unused touch elements
            for(var key in touch_elements) {
                if(touch_elements.hasOwnProperty(key) && !touches_index[key]) {
                    touch_elements[key].remove();
                    delete touch_elements[key];
                }
            }
        }

        Hammer.detection.register({
            name: 'show_touches',
            priority: 0,
            handler: function(ev, inst) {
                touches_index = {};

                // clear old elements when not using a mouse
                if(ev.pointerType != Hammer.POINTER_MOUSE && !force) {
                    removeUnusedElements();
                    return;
                }

                // place touches by index
                for(var t= 0,total_touches=ev.touches.length; t<total_touches;t++) {
                    var touch = ev.touches[t];

                    var id = touch.identifier;
                    touches_index[id] = touch;

                    // new touch element
                    if(!touch_elements[id]) {
                        touch_elements[id] = $(template).appendTo(document.body);
                    }

                    // Paul Irish says that translate is faster then left/top
                    touch_elements[id].css({
                        left: touch.pageX,
                        top: touch.pageY
                    });
                }

                removeUnusedElements();
            }
        });
    };
})(window.Hammer);

当我编译并执行代码时,我得到了一个错误

04-23 14:23:40.936: E/Web Console(740): TypeError: Result of expression 'Hammer' [undefined] is not an object. at file:///android_asset/www/hammer.js:8

04-23 14:23:40.936: E/Web Console(740): ReferenceError: Can't find variable: Hammer at file:///android_asset/www/range.html?var%20id=results.rows.item(1).id:35

而在第 35 行中,我给出了..

var hammer = new Hammer(document.getElementById("pageWrapper"));

html

<div id="pageWrapper">
    <div class="page" >
    <h4 style="background-image:url(img/______.png); margin-bottom:80px; text-align:center;">hello</h4>
    <img src="img/______.png" style="margin-left:5px;" /><img align="middle"  />
</div>

因为,我遇到了错误,所以我尝试使用 [这里] (https://github.com/cubiq/SwipeView/blob/master/src/swipeview.js)的 SwipeView.js 来实现它,它进入了循环..显示页面控制器,但缺少以下内容

  • 页面控制器被垂直而不是水平看到
  • 为滑动视图设置的图像不可见。
  • 页面垂直移动而不是水平移动

我还发现一个 WARNING 作为 Miss a drag ,因为我们正在等待 WebCore 对着陆的响应。

我尝试添加以下代码...没有变化

document.addEventListener( "touchstart", function(e){ onStart(e); }, false );
    function onStart ( touchEvent ) {
      if( navigator.userAgent.match(/Android/i) ) {
       touchEvent.preventDefault();
      }
    }

有什么补救措施或解决方案吗?

4

0 回答 0