zoukankan      html  css  js  c++  java
  • [DIV+CSS] set the screen capture Part 1 (div截取屏幕)

    使用下面的代码来获取屏幕。用DIV加CSS 来控制。 使用mousemove来获取移动的时候DIV的变化,

    效果图如下:

    使用5个DIV来组成实现截图目的第一部分,现在只是实现了选择的第一部分。

    HTML 部分

    1 <div id="bg" class="divShawd" onmousedown="mousedown()" onmouseup="mouseup()" onmousemove="mousemove()" ondblclick="confirmCapture()">
    2    </div>
    3 <div id="divTop" class="divShawdArea"></div>
    4 <div id="divLeft" class="divShawdArea"></div>
    5 <div id="divRight" class="divShawdArea"></div>
    6 <div id="divBottom" class="divShawdArea"></div>

    CSS 部分

    .divShawdArea {
        cursor: crosshair;
        position: absolute;
        display: none;
        background-color: black;
        z-index: 1000;
        -moz-opacity: 0.7;
        opacity: .70;
        filter: alpha(opacity=70);
    }
     
    .divShawd {
        cursor: crosshair;
        display: none;
        position: absolute;
        top: 0%;
        left: 0%;
         100%;
        height: 100%;
        background-color: black;
        z-index: 1001;
        -moz-opacity: 0.0;
        opacity: .0;
        filter: alpha(opacity=0);
    }

    JAVASCRIPT 部分

    <script type="text/javascript">
        var moveCondition = false;
        var move = false;
        var moveArea = false;
        var moveAreaCondition = false;
     
        function showdiv() {
            //document.getElementById("bg").style.display = "block";
            $("#bg").show();
            $("#bg").css("cursor", "crosshair");
     
            moveCondition = true;
        }
     
        function hidediv() {
            moveCondition = false;
            //document.getElementById("bg").style.display = 'none';
            $("#bg").hide();
            $("#divTop").hide();
            $("#divLeft").hide();
            $("#divRight").hide();
            $("#divBottom").hide();
        }
     
        var origX = 0, compX = 0, origAreaX = 0, trimX = 0;
        var origY = 0, compY = 0, origAreaY = 0, trimY = 0;
     
        function mousedown() {
            if (moveCondition) {
     
                $("#divTop").show();
                $("#divLeft").show();
                $("#divRight").show();
                $("#divBottom").show();
                // $("#show").show();
     
                move = moveCondition;
                origX = event.clientX;
                origY = event.clientY;
                // $("#show").css("left", event.clientX).css("top", event.clientY);
                // $("#show").css("width", "1").css("height", "1");
                showdivArea(origX, origY, origX + 1, origY + 1);
            } else if (moveAreaCondition) {
                moveArea = true;
                origAreaX = event.clientX;
                origAreaY = event.clientY;
            }
        }
     
        function mousemove() {
            if (move == true) {
                showdivArea(origX, origY, event.clientX, event.clientY);
            }
            else if (moveArea) {
                trimX = event.clientX - origAreaX;
                trimY = event.clientY - origAreaY;
                //$("#divBottom").html = "X1:" + origX + ",Y1:" + origY + ",X2:" + compX + ",Y2:" + compY;
                showdivArea(origX + trimX, origY + trimY, compX + trimX, compY + trimY);
            }
        }
     
        function mouseup() {
            move = false;
            moveCondition = false;
            moveAreaCondition = true;
            $("#bg").css("cursor", "pointer");
     
            compX = event.clientX;
            compY = event.clientY;
     
            if (moveArea) {
                moveArea = false;
                moveAreaCondition = false;
     
                origX += trimX;
                origY += trimY;
                compX += trimX;
                compY += trimY;
            }
        }
     
        function confirmCapture() {
            alert("select area is : (X1:" + origX + ",Y1:" + origY + ",X2:" + compX + ",Y2:" + compY + ")");
            $("#bg").css("cursor", "default");
            hidediv();
        }
     
        function showdivArea(oX, oY, cX, cY) {
     
            if (oX > cX) {
                var temp = oX;
                oX = cX;
                cX = temp;
            }
     
            if (oY > cY) {
                var temp = oY;
                oY = cY;
                cY = temp;
            }
     
            //$("#show").css("width", compX - origX).css("height", compY - origY);
     
            $("#divTop").css("left", "0").css("top", "0");
            $("#divTop").css("width", "100%").css("height", oY);
     
            $("#divLeft").css("left", "0").css("top", oY);
            $("#divLeft").css("width", oX).css("height", cY - oY);
     
            $("#divRight").css("left", cX).css("top", oY);
            $("#divRight").css("width", screen.width - cX).css("height", cY - oY);
     
            $("#divBottom").css("left", "0").css("top", cY);
            $("#divBottom").css("width", "100%").css("height", screen.height - cY);
     
        }
     
    </script>

    [PS]: 现在完成了第一部分,选择出需要截取的图片。接下来的思路是:

    1. 通过C#代码,截取当前的屏幕图片。 在通过选择的两个point来截取部分图片。

    2. 截取后的内容保存为图片。然后提示出保存窗口,完成整个的截取过程

  • 相关阅读:
    Linux查看日志常用命令
    linux(centos)下安装PHP的PDO扩展
    TP thinkphp 权限管理 权限认证 功能
    mysql优化(三)–explain分析sql语句执行效率
    阿里云服务器Centos7成为挖矿肉鸡被挖矿imWBR1耗尽CPU
    Asp.net导入Excel并读取数据
    定义显式类型转换和隐式类型转换
    C# 对象与引用变量
    C# ref参数
    C# 字段与属性的区别
  • 原文地址:https://www.cnblogs.com/lubu123456/p/4412263.html
Copyright © 2011-2022 走看看