在页面中 js 获取光标/鼠标的坐标,获取光标的的像素坐标

近期为网站开发页面统计,以前虽然也开发过,但是功能不是很全,所以这次把一些好功能给用上。

例如这次的,页面JS光标/鼠标坐标,你也许问着有什么用,百度统计中有个热点统计图,这下清楚明白了吧。

好了,上肉:

功能:获取光标的的像素坐标

<html>
	<head>
		<script type="text/javascript">
			function showPosition(e){
				var x,y; 
				var e = e||window.event; 
				
				document.getElementById("x").value = e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
				document.getElementById("y").value = e.clientY+document.body.scrollTop+document.documentElement.scrollTop
							
			}
		</script>
	</head>
	<body>
		<div  οnmοusemοve="showPosition(event);" style="height:100%; width:100%;">
			x:<input id="x" type="text" value="" />
			y:<input id="y" type="text" value="" />
		</div>
	</body>
</html>

好肉来自: http://www.oschina.net/question/185906_71425

获取鼠标光标处的坐标,可以使用 VTK 的 vtkRenderWindowInteractor 类。具体操作如下: 1. 创建一个 vtkRenderWindowInteractor 对象,并将其设置为 vtkRenderWindow 的交互器: ``` vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); interactor->SetRenderWindow(renderWindow); ``` 2. 将交互器添加到场景: ``` interactor->Initialize(); ``` 3. 创建一个 vtkPropPicker 对象,并将其设置为交互器的 picker: ``` vtkSmartPointer<vtkPropPicker> picker = vtkSmartPointer<vtkPropPicker>::New(); interactor->SetPicker(picker); ``` 4. 为交互器添加鼠标事件监听器,监听鼠标移动事件: ``` vtkSmartPointer<MouseInteractor> mouseInteractor = vtkSmartPointer<MouseInteractor>::New(); mouseInteractor->SetPicker(picker); interactor->AddObserver(vtkCommand::MouseMoveEvent, mouseInteractor); ``` 其,MouseInteractor 是一个自定义的鼠标事件监听器,用于处理鼠标移动事件。具体实现可以参考下面的代码。 5. 在自定义的鼠标事件监听器实现获取鼠标光标处的坐标: ``` class MouseInteractor : public vtkCommand { public: static MouseInteractor* New() { return new MouseInteractor; } void SetPicker(vtkPropPicker* picker) { picker_ = picker; } void Execute(vtkObject* caller, unsigned long eventId, void* callData) override { vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::SafeDownCast(caller); int x = interactor->GetEventPosition()[0]; int y = interactor->GetEventPosition()[1]; vtkRenderer* renderer = interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer(); picker_->PickProp(x, y, renderer); double* pos = picker_->GetPickPosition(); std::cout << "Mouse position: " << pos[0] << ", " << pos[1] << ", " << pos[2] << std::endl; } private: vtkPropPicker* picker_; }; ``` 在 Execute 方法,首先获取鼠标光标在窗口坐标,然后使用 picker_ 对象获取鼠标光标处的坐标,并输出到控制台
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值