广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >javascript如何实现禁止缩放
  • 924
分享到

javascript如何实现禁止缩放

2024-04-02 19:04:59 924人浏览 安东尼
摘要

这篇文章给大家分享的是有关javascript如何实现禁止缩放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript实现禁止缩放的方法:

这篇文章给大家分享的是有关javascript如何实现禁止缩放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

javascript实现禁止缩放的方法:1、设置对应浏览器的启动参数来禁止用户缩放页面;2、设置meta来禁止用户缩放页面;3、通过js监听来禁止用户缩放页面;4、禁用“ontouchmove”事件;5、通过多点触摸手势库实现。

本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript怎么实现禁止缩放?

javascript浏览器禁止用户放大缩小的五种方法

方案一:设置对应浏览器的启动参数来禁止用户缩放页面

这种方案在自建平台上,自选的指定浏览器上效果是可以的,但是不推荐,比如chrome主要通过设置* { touch-acion : none }来实现禁用缩放的方法,具体方案可自行搜索,我也没有进行相关测试

touch-acion的参数意义如下:

auto:默认值。浏览器允许一些手势(touch)操作在设置了此属性的元素上,例如:对视口(viewport)平移、缩放等操作。

none:禁止触发默认的手势操作。

pan-x:可以在父级元素(the nearest ancestor)内进行水平移动的手势操作。

pan-y:可以在父级元素内进行垂直移动的手势操作。

manipulation:允许手势水平/垂直平移或持续的缩放。任何auto属性支持的额外操作都不支持。

注:touch-action只支持具有CSS width和height属性的元素。这个限制的目的是帮助浏览器优化低延时的手势操作。对于默认不支持此属性的元素,如这种内联元素,可以给它设置display:block这样的CSS属性来支持width和height。未来W3C规范会将此api扩展到支持所有元素。

方案二:设置meta来禁止用户缩放页面

这是搜索后经常出现的方案,但是现在,这个标签在新的浏览器(比如在iOS10+)中已经失效,换言之,对于老版本的浏览器可能有效。

Android的自带浏览器中(例如华为,魅族,小米)第一次手动缩放时,会提示–再次操作可强制缩放网页—;再次缩放也可以缩放;

这一现象意味着meta标签的失效。在Android的chrome中不可以用户缩放(表现正常)

直接上代码(在.html文件中的<head></head>之间添加如下语句):

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-Scalable=no;" name="viewport" />

方案三:通过js监听来禁止用户缩放页面

直接上代码:

window.onload=function(){
  document.addEventListener('touchstart',function (event) { 
      if(event.touches.length>=2){ 
        event.preventDefault(); 
      } 
  }) 
  
  document.addEventListener('touchmove',function (event) { 
      if(event.touches.length>=2){ 
        event.preventDefault(); 
      } 
  }) 
  
  document.addEventListener('touchend',function (event) { 
      if(event.touches.length>=2){ 
        event.preventDefault(); 
      } 
  }) 
}

其中的event.touches.length是获取当天有几个点击事件同时发生,简单而言,就是有几个手指同时点击了屏幕,以为一般缩放操作都是两个手指以上进行的,所以这里应该满足的条件为event.touches.length>=2。不足之处就是禁用了所有的多点触控的操作。

【推荐:javascript高级教程

方案四:禁用“ontouchmove”事件

因为缩放屏幕必然跟随着双指的ontouchmove事件,我们在<html></html>标签内加入禁用该事件的函数event.preventDefault()即可,这招非常暴力,意味着全局无法使用使用滑动、拖动等动作,只接受点击动作。

代码如下——

<!DOCTYPE html>
<html xmlns="Http://www.w3.org/1999/xhtml" ontouchmove="event.preventDefault();">
  <head> 
    
  </head>
  <body>
    
  </body>
</html>

其中的event.preventDefault()函数将通知 WEB 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 “submit”,在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

写到这里,忽然想到,是否只禁用某个<div></div>区块的ontouchmove事件,比如:

<div ontouchmove="event.preventDefault();"></div>

但这种区块禁用的方式我还没有测试,你可以说我比较懒了,自己去测试吧~~~~

然而还没有得瑟一个月,我就有了这个需求,补充如下,直接上实现代码:

var singleTouchFlag; //多指触控标识符
$("#songList").on("touchstart", function (e) {  //引用了Jquery库,我所要多指禁止的区域id为“songList”
    // 判断默认行为是否可以被禁用
    console.log("touchstart Entered!!!");
    if (e.cancelable) {
        // 判断默认行为是否已经被禁用
        if (!e.defaultPrevented) {
            e.preventDefault();
        }
    }
    if (1 == parseInt(e.originalEvent.touches.length)) {
        singleTouchFlag = true;
        // do something
    } else {
        singleTouchFlag = false;
    }
});
$("#songList").on("touchmove", function (e) {
    // 判断默认行为是否可以被禁用
    if (e.cancelable) {
        // 判断默认行为是否已经被禁用
        if (!e.defaultPrevented) {
            e.preventDefault();
        }
    }
    if (singleTouchFlag) {
        //do something
    }
});
$("#songList").on("touchend", function (e) {
    // 判断默认行为是否可以被禁用
    console.log("touchend Entered!!!");
    if (e.cancelable) {
        // 判断默认行为是否已经被禁用
        if (!e.defaultPrevented) {
            e.preventDefault();
        }
    }
    if (singleTouchFlag) {
        //do something
        
    }
});

方案五:借助于**多点触摸手势库“hammer.js ”**解决

hammer.js 是一个多点触摸手势库,能够为网页加入Tap、Double Tap、Swipe、Hold、Pinch、Drag等多点触摸事件,免去自己监听底层touchstart、touchmove、touchend事件并且写一大堆判断逻辑的痛苦。

hammer.js 不但支持触摸屏设备的浏览器,在桌面浏览器上,也能将鼠标的点击当做触摸,方便开发人员在桌面浏览器上调试。(JS仔在自己的随手背项目里面也用了hammer.js,真心好用)

直接上代码(在.html文件中的<head></head>之间添加如下语句):

<script src = "http://eightmedia.GitHub.com/hammer.js/hammer.js" > </script>
    <script>
        window.onload = function () {
            var hammerMusicBlock = new Hammer(document.getElementById("musicBlock"));
            hammerMusicBlock.ontransfORMstart = function (ev) { ev.preventDefault(); }; // double fingers touchstart
            hammerMusicBlock.ontransform = function (ev) { ev.preventDefault(); }; // double fingers touchmove
            hammerMusicBlock.ontransformend = function (ev) { ev.preventDefault(); }; // double fingers touchend
        }
    </script>

hammer.js 其他的使用方式简介,直接看代码:

<script src = "http://eightmedia.github.com/hammer.js/hammer.js" > </script>
 
// 先要对监听的DOM进行一些初始化
var hammer = new Hammer ( document . getElementById ( "container" ) ) ;
 
// 然后加入相应的回调函数即可
hammer . ondragstart = function ( ev ) { } ;    // 开始拖动
hammer . ondrag = function ( ev ) { } ; // 拖动中
hammer . ondragend = function ( ev ) { } ; // 拖动结束
hammer . onswipe = function ( ev ) { } ; // 滑动
 
hammer . ontap = function ( ev ) { } ; // 单击
hammer . ondoubletap = function ( ev ) { } ; //双击
hammer . onhold = function ( ev ) { } ; // 长按
 
hammer . ontransformstart = function ( ev ) { } ; // 双指收张开始
hammer . ontransform = function ( ev ) { } ; // 双指收张中
hammer . ontransformend = function ( ev ) { } ; // 双指收张结束
 
hammer . onrelease = function ( ev ) { } ; // 手指离开屏幕
hammer.js 还支持jQuery插件的形式调用:
<script src = "http://eightmedia.github.com/hammer.js/jquery.hammer.js" > </script>
 
$ ( "#element" )
   . hammer ( {
         // 对DOM进行一些初始化,这里可以加入一些参数
   } )
   . bind ( "tap" , function ( ev ) {
         console . log ( ev ) ;
   } ) ;

感谢各位的阅读!关于“javascript如何实现禁止缩放”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: javascript如何实现禁止缩放

本文链接: https://www.lsjlt.com/news/67938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript如何实现禁止缩放
    这篇文章给大家分享的是有关javascript如何实现禁止缩放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript实现禁止缩放的方法:...
    99+
    2022-10-19
  • css实现禁止缩放的方法
    这篇文章主要介绍“css实现禁止缩放的方法”,在日常操作中,相信很多人在css实现禁止缩放的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css实现禁止缩放的方法”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-14
  • HTML5如何添加禁止缩放功能
    这篇文章主要介绍HTML5如何添加禁止缩放功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示:<meta name="viewport&qu...
    99+
    2022-10-19
  • JS如何实现禁止用户使用Ctrl+鼠标滚轮缩放网页
    这篇文章主要为大家展示了“JS如何实现禁止用户使用Ctrl+鼠标滚轮缩放网页”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现禁止用户使用Ctrl+鼠标...
    99+
    2022-10-19
  • html如何设置禁止缩小
    这篇文章将为大家详细讲解有关html如何设置禁止缩小,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在html中,可以使用user-scalabel属性设置禁止缩小,只需要在mate元素中添加“user-s...
    99+
    2023-06-15
  • chrome如何禁止javascript
    chrome如何禁止javascript,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。chrome禁止javascript的方法:1、打开...
    99+
    2022-10-19
  • html5如何禁止放大页面
    这篇文章主要为大家展示了“html5如何禁止放大页面”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5如何禁止放大页面”这篇文章吧。 ...
    99+
    2022-10-19
  • javascript如何禁止拷贝
    这篇文章主要介绍“javascript如何禁止拷贝”,在日常操作中,相信很多人在javascript如何禁止拷贝问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascri...
    99+
    2022-10-19
  • win10如何禁止桌面放文件
    这篇文章给大家分享的是有关win10如何禁止桌面放文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体解决方法如下:按下“Win+R”呼出运行,在框内输入“regedit”然后按下回车键呼出注册表编辑器。在注册...
    99+
    2023-06-12
  • linux如何实现禁止ping
    小编给大家分享一下linux如何实现禁止ping,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先登陆服务器终端之间执行:echo 1 > /proc/sy...
    99+
    2023-06-12
  • react如何实现缩放
    这篇文章主要讲解了“react如何实现缩放”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何实现缩放”吧!react实现缩放的方法:1、监听onWheel事件;2、设置事件对象ev...
    99+
    2023-07-04
  • javascript怎么实现禁止刷新效果
    这篇文章将为大家详细讲解有关javascript怎么实现禁止刷新效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。js禁止刷新的方法:首先使用“window.event”检测键盘事件对应的内码;然后将内码...
    99+
    2023-06-14
  • 如何实现html禁止选择
    小编给大家分享一下如何实现html禁止选择,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html禁止选择的实现方法:1、通过css的方式实现禁止html内容被选中...
    99+
    2023-06-14
  • php如何实现禁止采集
    本文操作环境:Windows7系统、PHP7.1、Dell G3。php如何实现禁止采集?PHP防采集方法代码 1 <php 2 10 $HTTP_REFERER = $_SERVER["H...
    99+
    2021-02-20
    php
  • css如何实现禁止拖动
    这篇文章将为大家详细讲解有关css如何实现禁止拖动,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css的基本语法是什么css的基本语法是:1、css规则由选择器和一条或多条声明两个部分构成;2、选择器通常...
    99+
    2023-06-14
  • php如何实现访问禁止
    本篇内容主要讲解“php如何实现访问禁止”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现访问禁止”吧!php实现访问禁止的方法:1、创建一个php示例文件;2、通过“if(geten...
    99+
    2023-07-04
  • 360浏览器如何禁止javascript
    这篇文章给大家分享的是有关360浏览器如何禁止javascript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。禁止javascript的方法:1、打开浏览器,点击“菜单”按钮,在打开的列表中点击“设置”按钮;2...
    99+
    2023-06-14
  • javascript如何禁止事件冒泡
    本篇内容主要讲解“javascript如何禁止事件冒泡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript如何禁止事件冒泡”吧! ...
    99+
    2022-10-19
  • html5 input禁止输入如何实现
    这篇“html5 input禁止输入如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“html5 input禁止输入如何...
    99+
    2023-07-05
  • 如何使用JavaScript实现一个拖拽缩放效果
    这篇文章主要介绍“如何使用JavaScript实现一个拖拽缩放效果”,在日常操作中,相信很多人在如何使用JavaScript实现一个拖拽缩放效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用JavaS...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作