Pinch gestures have different listeners in different browsers but there is an outstanding lightweight library named hammer.js which handles pinch,swipe and .... pretty easy and fine in all browsers, Unfortunately it does not support Desktop Chrome, so you can not debug your web-mobile codes easily,
Shift-Mouse click&dragging on Desktop Chrome with hammer library also does not work fine, it activates hammer's Pan event instead of pinch and works just once!, after that it keeps calling Pan event when you move your mouse through your viewport which is quite annoying and makes the debug impossible.
Solution :
The only convenient way, that I know, to test your gestures on a mobile browser is to use either Safari to Safari connection on ios/osx devices or Chrome to Chrome connection for android devices.
I use to debug my JavaScript codes with Chrome DevTools but in web-mobile projects I use Safari Web Inspector, because I have an iphone and a Mac!. you also can not debug your ios device with Desktop Chrome.
Take a look at this article to find out how to setup your Safari Web Inspector.
Note: you need to connect your iphone to your mac using usb-cable and enable Web Inspector on your iphone (Settings-> Safari -> Advanced -> Web Inspector) If you are unable to see Develop menu on your Safari, Go to Preferences and in Advanced tab check "Show develop menu in menu bar". the rest are explained in the above mentioned article.
Update
It is not possible to debug an ios device on a Windows Desktop Safari.
The last answer has five negative votes, but what I want to say is that the latest chrome browser(78) on Android platform does not have the function of zoom. You may have some problems with your understanding of viewport. The scale of viewport is pinchzoom. If you set it like this, your web page cannot trigger pinchzoom.
Another solution to this for testing. Use the chrome phone simulator + fake a second touch at point 0,0:
function handleTouchStart(e) {
var touches=e.targetTouches;
touches=[{pageX:touches[0].pageX,pageY:touches[0].pageY},{pageX:0,pageY:0}]; //Comment this line out for production
//now use the touches variable as the list of touches.
If you have a mobile device on hand, you can connect the device to your desktop compute and use the Remote Devices feature to debug your phone on your desktop.
For Android:
Enable Developer Mode and USB Debugging.
On your desktop go to DevTools and click on More Tools > Remote Devices under the three dot menu
Check the Discover USB Devices option. You'll see an authorization popup on your phone. Allow it and continue.
Open Chrome on your phone and you should be able to inspect all the tabs on your phone. As a bonus you can use port forwarding to forward your desktop localhost to the device's localhost so if you're running a dev application on your desktop you can debug it on mobile.
For iPhones:
I'm not too familiar with the details here because I haven't been able to try it out myself but I believe you can enable it through chrome://inspect and Start Logging.
This may not be a developer answer. I've been having problems with enlarged web pages. then the page is broken. Many web pages do not support normal zoom.
Mouse Pinch-To-Zoom can be used with the general web.