如何在网页中捕获鼠标轨迹并输出

如何在网页中捕获鼠标轨迹并输出

1.      js捕获鼠标轨迹并输出

1.1.    js脚本如下:

<script>

window.addEventListener(‘load‘,function(){

var pad = document.getElementsByClassName(‘track-pad‘)[0];

var monitor = document.getElementsByClassName(‘track-monitor‘)[0];

var coordinate = document.getElementsByClassName(‘track-coordinate‘)[0];

var clist = document.getElementsByClassName(‘track-coordinate-list‘)[0];

var reset = document.getElementsByTagName(‘button‘)[0];

var fixSize = function(){

monitor.width = window.innerWidth;

};

var context = monitor.getContext(‘2d‘);

var cset = [];

window.addEventListener(‘resize‘,function(){ fixSize(); });

pad.addEventListener(‘mousemove‘,function(e){

context.strokeStyle = ‘white‘;

context.lineTo(e.x,e.y);

context.stroke();

coordinate.innerHTML = e.x+‘:‘+e.y;

cset.push(coordinate.innerHTML);

clist.innerHTML = cset.join(‘,‘);

});

reset.addEventListener(‘click‘,function(){

fixSize();

cset = [];

clist.innerHTML = ‘‘;

coordinate.innerHTML=‘在绿色的方块中滑动鼠标‘;

});

fixSize();

});

</script>

1.2.    解释

1.2.1.   addEventListener

window.addEventListener(‘load‘,function(){

源自dom中的定义,addEventListener() 方法用于向指定元素添加事件句柄。

移除句柄使用 removeEventListener() 方法。

语法

element.addEventListener(event, function, useCapture)

参数值


参数


描述


event


必须。字符串,指定事件名。
注意: 不要使用 "on"
前缀。 例如,使用 "click" ,而不是使用
"onclick"。 
支持所有HTML DOM事件,可以查看HTML DOM
Event对象参考手册。


function


必须。指定要事件触发时执行的函数。 
当事件对象会作为第一个参数传入函数。
事件对象的类型取决于特定的事件。例如, "click" 事件属于 MouseEvent(鼠标事件) 对象。


useCapture


可选。布尔值,指定事件是否在捕获或冒泡阶段执行。
可能值:

true - 事件句柄在捕获阶段执行

false- false- 默认。事件句柄在冒泡阶段执行

冒泡型:

1.对于某个节点,触发的一个事件, 会首先执行当前这个dom节点绑定的方法

2.执行完毕后,会冒泡至改节点的父节点,执行相应的函数

3. 重复以上过程,直至Dom的根节点。

捕获型

事件捕获的顺序刚好与之相反

  1.当一个事件发生时,最外层的已绑定该事件的方法会执行

  2.然后该事件会下降至他的子节点,触发相应的方法

  3.重复1,2的过程

实例

可以通过函数名来引用外部函数。

该实例演示了在用户点击 <button> 元素时如何执行函数:

document.getElementById("myBtn").addEventListener("click",
myFunction);
function myFunction() {
    document.getElementById("demo").innerHTML =
"Hello World";
}

可以在文档中添加许多事件,添加的事件不会覆盖已存在的事件。

该实例演示了如何在<button>元素中添加两个点击事件:

document.getElementById("myBtn").addEventListener("click",
myFunction);
document.getElementById("myBtn").addEventListener("click",
someOtherFunction);

可以在同一个元素中添加不同类型的事件。

该实例演示了如何在同一个 <button> 元素中添加多个事件:

document.getElementById("myBtn").addEventListener("mouseover",
myFunction);
document.getElementById("myBtn").addEventListener("click",
someOtherFunction);
document.getElementById("myBtn").addEventListener("mouseout",
someOtherFunction);

当传递参数值时,使用"匿名函数"调用带参数的函数:

document.getElementById("myBtn").addEventListener("click",
function() {
    myFunction(p1, p2);
});

1.2.2.  
var context =
monitor.getContext(‘2d‘);

var context = monitor.getContext(‘2d‘);

getContext() 方法返回一个用于在画布上绘图的环境。

语法

Canvas.getContext(contextID)

参数

参数contextID指定了您想要在画布上绘制的类型。当前唯一的合法值是"2d",它指定了二维绘图,并且导致这个方法返回一个环境对象,该对象导出一个二维绘图API。

如果<canvas>标签以后支持3D绘图,getContext()方法可能允许传递一个"3d"字符串参数。

返回值

一个CanvasRenderingContext2D对象,使用它可以绘制到Canvas元素中。

描述

返回一个表示用来绘制的环境类型的环境。其本意是要为不同的绘制类型(2维、3 维)提供不同的环境。当前,唯一支持的是"2d",它返回一个CanvasRenderingContext2D对象,该对象实现了一个画布所使用的大多数方法。

全部代码:

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<style>
*{
margin:0;
padding:0;
border:0;
}
.stage{

}
.track-monitor{

background-color:orange;
}
.track-pad{

height:200px;
background-color:green;
}
.track-coordinate{

background-color:purple;
color:white;
height:25px;
line-height:25px;
font-size:12px;
}
.track-coordinate-list{

font-size:12px;
width:100%;
word-break:break-word;

}
</style>
<script>
window.addEventListener(‘load‘,function(){

var pad = document.getElementsByClassName(‘track-pad‘)[0];
var monitor = document.getElementsByClassName(‘track-monitor‘)[0];
var coordinate = document.getElementsByClassName(‘track-coordinate‘)[0];
var clist = document.getElementsByClassName(‘track-coordinate-list‘)[0];
var reset = document.getElementsByTagName(‘button‘)[0];
var fixSize = function(){

monitor.width = window.innerWidth;
};

var context = monitor.getContext(‘2d‘);
var cset = [];

window.addEventListener(‘resize‘,function(){ fixSize(); });

pad.addEventListener(‘mousemove‘,function(e){

context.strokeStyle = ‘white‘;
context.lineTo(e.x,e.y);
context.stroke();
coordinate.innerHTML = e.x+‘:‘+e.y;
cset.push(coordinate.innerHTML);
clist.innerHTML = cset.join(‘,‘);

});

reset.addEventListener(‘click‘,function(){

fixSize();
cset = [];
clist.innerHTML = ‘‘;
coordinate.innerHTML=‘在绿色的方块中滑动鼠标‘;
});

fixSize();

});
</script>
</head>
<body>
<div class="stage">
<div class="track-pad"></div>
<canvas width="100" height="200" class="track-monitor"></canvas>
<div class="track-coordinate">在绿色的方块中滑动鼠标</div>
<button>重置</button>
<div class="track-coordinate-list"></div>
</div>
</body>
</html>

原文地址:https://www.cnblogs.com/wodeboke-y/p/11180120.html

时间: 2024-08-29 09:49:20

如何在网页中捕获鼠标轨迹并输出的相关文章

在网页中添加自定义鼠标指针

body{cursor:url('鼠标指针图片网址')} a:hover{cursor:url('鼠标指针图片网址')} 说明1:第一行是鼠标指针初始形态,第二行是鼠标指针碰到链接的形态. 说明2:你需要两个鼠标指针图片(最好这两个图片是一套或是相近的). 说明3:鼠标指针的图片格式是.cur和.ani,不是.jpg..gif或是其它图片格式,这点请注意. 说明4:很遗憾,博客中国不支持任何一种鼠标指针图片格式的上传,大家要实现指针变换,要么就找一些别的网站贴出来的现成的指针图片链接地址,要么就

Hyper-V中 远程桌面无法捕获鼠标信号

当我们在Hyper-v中遇到鼠标不能正常使用,点击鼠标没反应的时候,在网络连接中也找不到网卡.点击鼠标时,虚拟机下方提示, "远程桌面无法捕获鼠标信号", 这是由于驱动问题导致的. 我们在虚拟机中插入集成服务安装盘,如下图, 手动运行光盘里的 support->x86 -> setup  重启客户机后,鼠标可以使用,网络连接也正常了. Hyper-V中 远程桌面无法捕获鼠标信号,布布扣,bubuko.com

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件",出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值. 比较实际的解决方案就是模拟操作了,下面我就将演示

在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法

在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法[MXDRAW CAD控件文档]下面帮助的完整例子,在控件安装目录的Sample\Ie\iedemo.htm中. 主要用到函数说明A. ImplementCommandEventFun控件的命令事件函数,与用户交互的操作,需要放到命令事件函数内实现,这样控件才能保证正常的Windows 消息循环被处理.B. ImplementMouseEventFun控件的鼠标事件函数,可以用JS程序里,响应鼠标事件,详细说明如下:void MouseE

鼠标参数,获取鼠标在网页中的坐标

1. 事件对象 event 标准浏览器 传递给响应函数 IE 把 event 事件对象作为全局对象 window 的一个属性 2. 浏览器滚动条高度 标准浏览器 使用 documen.documentElement.scrollLeft    documen.documentElement.scrollTop Safari 等浏览器 使用 window.pageXOffset    window.pageYOffset 没有 doctype 声明的页面 document.body.scrollL

在网页中插入百度地图(实例)

步骤 1 2 3 如何在网页中插入百度地图呢? 2.切换城市,搜索需标注位置.(如下图 方法/步骤 1.进入:http://api.map.baidu.com/lbsapi/creatmap/(创建地图-百度地图API所见即所得工具,百度官方地址,大家放心使用) 切换城市,搜索需标注位置.(如下图:) 设置地图:大家可以对网站显示地图的宽高进行设置,其余选项不动. 添加标注:点击第一个图标后,在右侧找到自己的位置,单击鼠标左键可定位.标记图标处可更换图标形状,名称和备注填入位置相关信息.(如下图

JS获取网页中HTML元素的几种方法分析

getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getElementsByTagName ###adv### 后两个是得到集合,byid只是得到单个对象 getElementById 的用法 举个例子: <a id="link1" name="link1" href=http://homepage.yesky.com>

用CSS3做网页中的小三角,以及transition的用法

自开了博客园已经有2周了吧,虽然转载了一些觉得比较有用的文章之外还没有开始写自己的一些学习记录,那就从今天开始. 目前看了妙味的不少视频,有css+html,js的基础和中级也都看完了,作业也都做了,css3的部分也看过了,但是觉得讲得不太好,全部都是点到为止.无意中找到了传智播客的视频讲了一些css3的小技巧,今天就写一下用CSS3做网页中的小三角. 大致网上关于小三角的做法无非三种: 直接用背景图片,这个没什么好说的: 用块元素设置宽高都为0,三角的高用一条边框宽度,其他三条边框用dashe

抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程

本文主要介绍如何抓取网页中的内容.如何解决乱码问题.如何解决登录问题以及对所采集的数据进行处理显示的过程.效果如下所示: 1.下载网页并加载至HtmlAgilityPack 这里主要用WebClient类的DownloadString方法和HtmlAgilityPack中HtmlDocument类LoadHtml方法来实现.主要代码如下. var url = page == 1 ? "http://www.cnblogs.com/" : "http://www.cnblogs