Partilhar via


How to implement the -ms-touch-action: none property to disable Double-tap-zoom on Windows Touch devices

In this quick blog post I will provide you with steps on how to implement the Cascading Style Sheet Touch Zooming property to disable Double-tap-zoom functionality on your html page.

 

SCENARIO:

A new Windows 8 Touch Capable device is deployed on your environment. The developer wants to disable full page double-tap-zoom functionality.

 

DEFAULT BEHAVIOR:

When a user touches an element, that element's -ms-touch-action property determines the default touch behaviors permitted for that contact, like panning or zooming and double-tap-zoom is available.

IMPLEMENTATION:

By using -ms-touch-action: none; on your body tag, it will disable double-tab-zoom

 

SAMPLE HTML CODE:

 <!DOCTYPE html>

<htmllang="en"xmlns="https://www.w3.org/1999/xhtml">

<head>

<title> -ms-touch-action: none - DISABLE DOUBLE-TAP-ZOOM TEST SAMPLE </title>

<meta content="IE=edge" http-equiv="X-UA-Compatible"/>

<meta charset="utf-8"/>

<style type="text/css">

body { -ms-touch-action: none !important; /* DISABLE DOUBLE-TAP-ZOOM */ }  

.zoomElement {overflow: auto; -ms-content-zooming: zoom; -ms-scroll-rails: none; -ms-content-zoom-limit-min: 100%; -ms-content-zoom-limit-max: 500%;}

.ManipulationContainer {width: 480px; height: 270px;}     

.ManipulationContainer.zoomElement {border-width: 0.5px; border-style: solid; -ms-overflow-style: none;}

.zoomElement img {width: 480px; height: 270px;}

</style>

</head>

<body>

<h1>Using -ms-touch-action: none to disable Double-tap-zoom on Touch devices</h1>

<p>In this scenario added ms-touch-action: none !important; to the Body TAG to DISABLE DOUBLE-TAP-ZOOM</p>

<div>

<h2>Description</h2>

<div>   

<p>This page is using the <strong>-ms-touch-action: none</strong> property in the body tag to prevent double-tap-zooming. </p>  

<h2class="codeLabel">CSS CODE</h2><pre>

  body { -ms-touch-action: none; /* DISABLE DOUBLE-TAP-ZOOM */ }

</pre></div></div>

<div id="zoomElement" class="ManipulationContainer zoomElement"><img  id="zoomContent" alt="Sunset" src="https://i.msdn.microsoft.com/dynimg/IC582458.jpg"/></div>

  

<h1>RESULT</h1>

<p>Try to double-tap-zoom. This functionality is disabled for the html body of this page. However, if try to zoom the image in this page, it will still work as I defined a different class for this element.</p>

</body>

</html>

CONCLUSION:

Developers have the flexibility to easily control each element using these cascading style properties.

  

MORE INFORMATION:

For more information on other Property values, visit our MSDN link: https://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx

 

This blog has been provided to you by The IE SDK Support Team.

Comments

  • Anonymous
    June 04, 2013
    wouldn't using the "ms-content-zooming: none;" on the body tag be more effective and appropriate? If not then why not? msdn.microsoft.com/.../hh441251.aspx
  • Anonymous
    June 05, 2013
    Renzo: Either will prevent Zooming / Double-tap-zoom in windows touch devices, which is what I was trying to illustrate. And in fairness, the blog was inspired by a specific scenario I worked on and I should have clarify that. Thanks for your time and providing your feedback/comment as it does helps us provide quality content!REF: -ms-content-zooming - msdn.microsoft.com/.../hh771891(v=vs.85).aspxREF: -ms-touch-action - msdn.microsoft.com/.../hh772044(v=vs.85).aspx
  • Anonymous
    June 23, 2016
    Is it different that using "user-scalable=no" in the meta viewport?