首页 > 其他分享 >图片放大缩小拖动

图片放大缩小拖动

时间:2023-10-16 14:22:13浏览次数:29  
标签:function layer 鼠标 img 拖动 缩小 var event 放大

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<link rel="stylesheet" href="http://www.h5al.cn/js/preview.css">
<style type="text/css">
.mask-layer-imgbox{
    width:400px;
    height:400px;
    border: 1px solid #ff9900;
}
.layer-img-box{
    width:100%;
    height:400px;
    overflow: hidden;
}
</style>
<body>

<div id="app">
    <img src="http://www.h5al.cn/js/img/shuaxin.png" width="30" height="30" style="cursor: pointer;margin-left:10px;margin-bottom: 4px;" onclick="boxReset()"/>
    <div class="mask-layer-imgbox">
        <div class="layer-img-box"><img id="vinpic"></div>
    </div>
</div>

</body>
<script src="http://www.h5al.cn/js/jquery-1.11.3.min.js"></script>

<script type="text/javascript">
$(function(){
    $("#vinpic").attr('src','http://www.h5al.cn/img/1.jpg')
    imgInit()
});

//看图用
var spin_n = 0; //旋转角度
var zoom_n = 1;//缩放 放大
/*图片操作方法*/
var imgInit = function imgInit() {
    zoom_n = 1;//重置缩放比例
    /*图片拖拽*/
    var $div_img = $(".layer-img-box img");
    //绑定鼠标左键按住事件
    $div_img.bind("mousedown", function(event) {
        event.preventDefault && event.preventDefault(); //去掉图片拖动响应
        //获取需要拖动节点的坐标
        var offset_x = $(this)[0].offsetLeft; //x坐标
        var offset_y = $(this)[0].offsetTop; //y坐标
        //获取当前鼠标的坐标
        var mouse_x = event.pageX;
        var mouse_y = event.pageY;
        //绑定拖动事件
        //由于拖动时,可能鼠标会移出元素,所以应该使用全局(document)元素
        $(".layer-img-box").bind("mousemove", function(ev) {
            // 计算鼠标移动了的位置
            var _x = ev.pageX - mouse_x;
            var _y = ev.pageY - mouse_y;
            //设置移动后的元素坐标
            var now_x = (offset_x + _x) + "px";
            var now_y = (offset_y + _y) + "px";
            //改变目标元素的位置
            $div_img.css({
                top: now_y,
                left: now_x
            });
        });
        //当鼠标左键松开,接触事件绑定
        $(".layer-img-box").bind("mouseup", function() {
            $(".layer-img-box").unbind("mousemove");
        });
    });
    //绑定鼠标滚轮缩放图片
    $div_img.bind("mousewheel DOMMouseScroll", function(e) {
        e = e || window.event;
        var delta = e.originalEvent.wheelDelta || e.originalEvent.detail;
        var dir = delta > 0 ? 'down' : 'up';
        zoomImg(this, dir,e);
        return false;
    });

    //鼠标滚轮缩放图片
    function zoomImg(o, delta,e) {
        // console.log(e);//鼠标位置放大该出定位换算太麻烦
        if(delta == 'up') {
            zoom_n -= 0.2;
            zoom_n = zoom_n <= 0.8 ? 0.8 : zoom_n;
        } else {
            zoom_n += 0.2;
        }
        // console.log(zoom_n);
        $(".mask-layer-imgbox img").css({
            "transform": "translate(-50%, -50%) rotate(" + spin_n + "deg) scale(" + zoom_n + ")",
            "-moz-transform": "translate(-50%, -50%) rotate(" + spin_n + "deg) scale(" + zoom_n + ")",
            "-ms-transform": "translate(-50%, -50%) rotate(" + spin_n + "deg) scale(" + zoom_n + ")",
            "-o-transform": "translate(-50%, -50%) rotate(" + spin_n + "deg) scale(" + zoom_n + ")",
            "-webkit-transform": "translate(-50%, -50%) rotate(" + spin_n + "deg) scale(" + zoom_n + ")"
        });
    }
}
/*复位*/
function boxReset() {
    spin_n = 0;
    zoom_n = 1;
    $("#vinpic").attr("style","");
}
</script>
</html>

 

标签:function,layer,鼠标,img,拖动,缩小,var,event,放大
From: https://www.cnblogs.com/liufeiran/p/17767247.html

相关文章

  • 模拟集成电路设计系列博客——2.4.2 全差分折叠Cascode放大器
    2.4.2全差分折叠Cascode放大器下图展示了一个简化的全差分折叠Cascode放大器。使用两个Cascode电流源来取代之前介绍的结构中的n沟道电流镜,并增加了一个共模反馈电路。这些电流源的驱动晶体管的栅压由共模反馈电路的输出电压\(V_{cntrl}\)决定。共模反馈电路的输入是全差分放大......
  • 模拟集成电路设计系列博客——2.3 电流镜放大器
    模拟集成电路设计2.3电流镜放大器2.3电流镜放大器另一个在驱动片上容性负载时常用的放大器是电流镜放大器,其简化图如下所示:通过使用高输出阻抗的合理的电流镜结构,能够使得整体增益变得相当可观。下图展示了一个电流镜放大器的细节结构:整体的传输函数可很近似于单极点系统......
  • 射频功率放大器PA与低噪声放大器LNA
    前言:功率放大器PA和低噪声放大器LNA是无线通信系统RU单元中非常重要的两个功能器件,他们的主要功能是对“小信号”进行功率放大。PA主要用于发送,而LNA主要用于接收。目录1. 功率放大器PA和低噪声放大器LNA的功能与RU系统中位置1.1PA和LNA在RU中的位置1.2放大器的噪声系......
  • QT 界面隐藏标题栏后设置可支持拖动
    QT界面隐藏标题栏后设置可支持拖动,需要重写界面的mousePressEvent,mouseMoveEvent,mouseReleaseEvent事件,代码如下。1#include<QWidget>2#include<QMouseEvent>34classCustomWidget:publicQWidget{5Q_OBJECT67public:8explicitCustomWidg......
  • 成品直播源码,图片放大且有渐变色罩层出现
    成品直播源码,图片放大且有渐变色罩层出现 <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>5</title><style>.mask1,.text{position:relative;overflow:hidden;width:800px;height:500px;transition:all.5s;}      ......
  • 模拟集成电路设计系列博客——2.2.3 折叠Cascode放大器的摆率
    2.2.3折叠Cascode放大器的摆率两个二极管接法的晶体管\(Q_{12}\)和\(Q_{13}\)在正常工作时截止,对于放大器的工作几乎没有影响。但是他们能共有效的提升数倍摆率[Law,1983]。为了理解他们的功能,首先考虑没有这两个晶体管时的摆率限制。假定有一个很大的输入差分电压导致\(Q_1\)......
  • Topaz Gigapixel AI:智能照片放大专家 mac+win版
    TopazGigapixelAI是一款由TopazLabs公司开发的智能照片放大软件,它通过先进的人工智能技术,将低分辨率图片转化为高分辨率、清晰度和细节丰富的图像。→→↓↓载TopazGigapixelAImac/win版 该软件的操作流程非常简单,主要包括导入图片、选择放大倍数、调整参数、开始处理......
  • Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="w......
  • chrome浏览器显示网页字体不正常,需要放大150% 显示正常
    软件环境:windows764位、chrome109.0.5414.120。故障现象:chrome浏览器,浏览百度、淘宝等网站总是需要把显示分辩率放大150%,然后显示正常。解决方案:下载windows7 kb2670838补丁安装后,重启电脑,打开chrome浏览器浏览网页显示正常。 ......
  • 图片放大镜
    <!DOCTYPEhtml><html><head><metaname="viewport"content="width=device-width,initial-scale=1.0"><style>*{box-sizing:border-box;}.img-magnifier-container{position:relative;}.img-magnifier-gla......