简体   繁体   English

Hammerjs配置以进行角度缩放

[英]Hammerjs configuration for pinch zoom in Angular

I am using HammerJS with Angular 4 application for pinch zoom an image. 我正在将HammerJS与Angular 4应用程序配合使用以缩小图像。 In hammerJS doc it is mentioned by default pinch zoom is set to off and the code to turn it on is 在HammerJS doc中,默认情况下提到将捏缩放设置为off,将其打开的代码为

hammertime.get('pinch').set({ enable: true });

Could anyone please help me what is angular 4 equivalent of this and what are the other configuration required to use hammer pinch zoom in angular 4? 谁能帮助我,什么是角度4等效项,以及使用锤子捏放大角度4所需的其他配置是什么?

Your question is pretty vague. 您的问题很模糊。 As asked though, the following is most likely what you are looking for: 根据要求,以下是您最想要的内容:

You first need to perform an npm install in your project to bring in the hammerjs library: npm install --save hammerjs 您首先需要在项目中执行npm install来引入Hammerjs库: npm install --save hammerjs

Then in your view/component you need to get a reference to the element you are interested in listening to events on with hammer.js . 然后,在您的视图/组件中,您需要获取对您感兴趣的元素的引用,该元素是关于使用hammer.js监听事件的。

Below is an example of how you could do that with small modifications on the default project the cli produces. 下面是一个示例,说明如何通过对cli生成的默认项目进行少量修改来做到这一点。

app.component.html

<div style="text-align:center">
  <h1>
    Welcome to {{ title }}!
  </h1>
  <img #img width="300" alt="Angular Logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">
</div>
<h2>Here are some links to help you start: </h2>
<ul>
  <li>
    <h2><a target="_blank" rel="noopener" href="https://angular.io/tutorial">Tour of Heroes</a></h2>
  </li>
  <li>
    <h2><a target="_blank" rel="noopener" href="https://github.com/angular/angular-cli/wiki">CLI Documentation</a></h2>
  </li>
  <li>
    <h2><a target="_blank" rel="noopener" href="https://blog.angular.io/">Angular blog</a></h2>
  </li>
</ul>

app.component.ts

import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';

import * as Hammer from 'hammerjs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
  @ViewChild('img') imgElement: ElementRef;
  title = 'app';

  ngAfterViewInit(): void {
    const hammer = new Hammer(this.imgElement.nativeElement);
    // hammer.on('press', function(e) {
    //   e.target.classList.toggle('expand');
    //   console.log('You\'re pressing me!');
    //   console.log(e);
    // });

    hammer.get('pinch').set({ enable: true });
  }
}

Full answer code on GitHub . GitHub上的完整答案代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM