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

效果图如下:

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

HTML 部分

 <div id="bg" class="divShawd" onmousedown="mousedown()" onmouseup="mouseup()" onmousemove="mousemove()" ondblclick="confirmCapture()">
</div>
<div id="divTop" class="divShawdArea"></div>
<div id="divLeft" class="divShawdArea"></div>
<div id="divRight" class="divShawdArea"></div>
<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%;
width: 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. 截取后的内容保存为图片。然后提示出保存窗口,完成整个的截取过程

[DIV+CSS] set the screen capture Part 1 (div截取屏幕)的更多相关文章

  1. 十天学会<div+css>横向导航菜单和纵向导航菜单

    纵向导航菜单及二级弹出菜单 纵向导航菜单:一级菜单 <head><style type="text/css">body { font-family: Ver ...

  2. 使用div+css制作简单导航 以及要注意问题

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. [转] 深度解剖DIV+CSS工作原理

    本文和大家重点讨论一下DIV+CSS工作原理,在一般情况的DIV+CSS开发静态html网页时,我们把html和CSS是分开的,形成html页面和CSS文件. DIV+CSS原理解剖 在一般情况的DI ...

  4. div+css与table布局

    1:速度和加载方式方面的区别 div 的加载方式是即读即加载,遇到 <div> 没有遇到 </div> 的时候一样加载 div 中的内容,读多少加载多少:table 的加载方式 ...

  5. DIV+CSS IE6/IE7/IE8/FF兼容问题汇总

    1.IE8下兼容问题,这个最好处理,转化成ie7兼容就可以.在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了 <meta http-equiv="x-ua-comp ...

  6. 01 DIV+CSS 固定页面布局

    本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是 ...

  7. IT兄弟连 HTML5教程 DIV+CSS网页标准化布局的优势

    标准的网页都需要对内容进行布局,以前都是采用表格的定位技术,从2005年开始逐步转向DIV+CSS的布局方式,目前绝大多数的网站都是采用这种布局方式.使用DIV+CSS对网站进行布局符合W3C标准,采 ...

  8. DIV+CSS+JS基础+正则表达式

    ...............HTML系列....................        DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素.DIV的起始 ...

  9. 网页代码DIV+CSS布局积累

    11.17 CSS英文命名在写CSS的时候,经常为一些名字而发愁,比如说菜单后面的背景要用什么词来表示呢?大家都知道,菜单一般用menu来表示,那么菜单后面的背景我会用menubg,CSS里就写#me ...

随机推荐

  1. 第六十四天 JS基础操作

    一.分支结构 1.if语句 if基础语句 if(条件表达式){ 代码块: } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通表达式 // 0.undefined ...

  2. Scrapy 框架 中间件,信号,定制命令

    中间件 下载器中间件 写中间件 from scrapy.http import HtmlResponse from scrapy.http import Request class Md1(objec ...

  3. RazorEngine

    目标 使用razorengine编译cshtml页面生静态html 制作一个vs2017的插件,实现右击cshtml文件时,编译该文件. 环境 razorengine4.5 / netframewor ...

  4. [模板]快速傅里叶变换(FFT)

    Miskcoo大佬的多项式全家桶传送门 rvalue大佬的FFT讲解传送门 用途 将多项式快速(nlogn)变成点值表达,或将点值表达快速变回系数表达(逆变换),(多数时候)来达到求卷积的目的 做法 ...

  5. MQ在高并发环境下,如果队列满了,如何防止消息丢失?

    1.为什么MQ能解决高并发环境下的消息堆积问题? MQ消息如果堆积,消费者不会立马消费所有的消息,不具有实时性,所以可以解决高并发的问题. 性能比较好的消息中间件:Kafka.RabbitMQ,Roc ...

  6. JavaProperties类、序列化流与反序列化流、打印流、commons-IO整理

    Properties类 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 特点: 1.Hashtable的子类 ...

  7. linux 触摸屏驱动

    目录 linux 触摸屏驱动 输入子系统怎么写? 触摸屏事件 事件分类 事件设置 硬件配置 设计思路 完整程序 测试 ts_lib 使用 问题小结 title: linux 触摸屏驱动 tags: l ...

  8. Connection to Oracle failed. [66000][12505] Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor .

    我安装了Oracle数据库,默认的数据库用户名是system,密码口令是安装过程中你自己设置的.可以先使用命令框,输入 sqlplus system; 然后再输入密码即可. 然后我的数据库连接工具使用 ...

  9. Node.js实战项目学习系列(5) node基础模块 path

    前言 前面已经学习了很多跟Node相关的知识,譬如开发环境.CommonJs,那么从现在开始要正式学习node的基本模块了,开始node编程之旅了. path path 模块提供用于处理文件路径和目录 ...

  10. nginx禁止ip登录,只允许域名访问

    公司要求,线上solr.kibana要求只能通过域名进行访问,禁止用ip+端口进行登录访问,那么,下面介绍下我是如何实现的 1.禁止ip,允许域名访问 如下图,默认安装好nginx,不让ip方式访问, ...