美文网首页
移动端两指放缩图片

移动端两指放缩图片

作者: cooqi | 来源:发表于2019-11-13 14:13 被阅读0次

使用hammer.js

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding:0px;
                margin:0px;
            }
            html{
                height:100%;
            }
            body{
                height:100%;
            }
            .main{
                width: 3.75rem;
                position: relative;
                height:100%; 
                margin: 0 auto; 
                background: #eee
            }
            .main h1{
                font-size:0.16rem;
            }
            .main img{
                max-width: 100%
            }
            .box {
                width: 3.75rem;
                height:100%;
                background: #333;
                position: absolute;
                top:0px;
                left:0px;
                margin: 0 auto;
                align-items: center; /*定义body的元素垂直居中*/
                justify-content: center; /*定义body的里的元素水平居中*/
                display: none;
                overflow: hidden
            }
            .box img{
                width:100%;
                position: absolute;               
            }
        </style>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <script type="text/javascript">
            (function (doc, win) {//这段代码是做手机端rem适应的
                var docEl = doc.documentElement,
                    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                    recalc = function () {
                        var clientWidth = docEl.clientWidth;
                        if (clientWidth>640){
                           clientWidth=640 
                        }
                        if (!clientWidth) return;
                        else{
                            docEl.style.fontSize = clientWidth / 3.75 + 'px';
                        }
                    };
                if (!doc.addEventListener) return;
                win.addEventListener(resizeEvt, recalc, false);
                doc.addEventListener('DOMContentLoaded', recalc, false);
            })(document, window);
        </script>
    </head>
 
    <body>
        <div class="main">
            <h1>点击这个图片进行预览</h1>
            <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1545628346247&di=f2fcd4f88291e0f60d6599602ee8ab20&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3304533311%2C1137740692%26fm%3D214%26gp%3D0.jpg"/>
            
            <div class="box">
                <img src="" />
            </div>
        </div>
 
 
        <script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            var pimg=document.querySelector("img");
            var oImg = document.querySelector(".box img");
            var oBox = document.querySelector(".box");
            pimg.οnclick=function(){
                oBox.style.display="flex"
                oImg.src=pimg.src
            }
            oBox.οnclick=function(){
                oBox.style.display="none"
                oImg.src=''
            }
            var hammer = new Hammer(oImg);//hammer实例化
            hammer.get('pan').set({direction: Hammer.DIRECTION_ALL});//激活pan(移动)功能
            hammer.get('pinch').set({enable: true});//激活pinch(双指缩放)功能
            hammer.on("panstart", function(event) {
                var left = oImg.offsetLeft;
                var tp = oImg.offsetTop;
                hammer.on("panmove", function(event) {
                    oImg.style.left = left + event.deltaX + 'px';
                    oImg.style.top = tp + event.deltaY + 'px';
                });
            })
 
            hammer.on("pinchstart", function(e) {
                hammer.on("pinchout", function(e) {
                    oImg.style.transition = "-webkit-transform 300ms ease-out";
                    oImg.style.webkitTransform = "scale(2.5)";
                });
                hammer.on("pinchin", function(e) {
                    oImg.style.transition = "-webkit-transform 300ms ease-out";
                    oImg.style.webkitTransform = "scale(1)";
                });
            })
        </script>
    </body>
 
</html>


原文
https://blog.csdn.net/beichen3997/article/details/89948523

相关文章

  • 移动端两指放缩图片

    使用hammer.js 原文https://blog.csdn.net/beichen3997/article/d...

  • 结构大师设置-精度功能详解

    画布灵敏度 取值范围:【0,10】说明:电脑端:鼠标滚轮对放缩画布的灵敏程度,数值越高越灵敏。移动端:手指对画布平...

  • 开发笔记17.06.06

    使用Photoshop对切片内容进行放缩(透明背景)打开图片,用“移动工具”选中内容,然后Ctrl+T选中图层内容...

  • 欢迎界面的使用

    SplashActivity(欢迎界面),要实现两个功能:①图片放缩显示②跳转Activity 一.图片显示 1....

  • 八、Android 9Patch图片介绍

    当一个图片内容太多时,Android会自动放缩整张图片,保证背景图片能覆盖整个容器,但是这种放缩整张图片的效果可能...

  • 移动端测试

    知识概览 一、 移动端测试是什么 移动端测试是指对移动应用进行的测试,即实体的特性满足需求的程度。 二、 移动端测...

  • 第六单元 移动端测试知识概览

    一、 移动端测试是什么 移动端测试是指对移动应用进行的测试,即实体的特性满足需求的程度。 二、 移动端测试分类 1...

  • 按比例缩放的布局

    需求: 移动端图片宽高1:1显示.并且图片宽度要充满手机屏幕的宽度. 移动端banner 按比例显示 不固定高度 ...

  • css3动画响应式适配问题

    在做css3动画的时候,我们经常遇到需要适配移动端和pc端的问题,比如UI给了一个两倍的缓动图片序列,因为在移动端...

  • 移动端图片格式调研

    移动端图片格式调研 图片通常是移动端流量耗费最多的部分,并且占据着重要的视觉空间。合理的图片格式选用和优化可以为你...

网友评论

      本文标题:移动端两指放缩图片

      本文链接:https://www.haomeiwen.com/subject/crbhictx.html