我正在我的网页上的div中加载一个外部网页(在本例中为www.duckduckgo.com).我希望在div内外得到我的鼠标X和Y位置,但当我在div内部时,似乎网页阻止onmousemove事件发射.但是,onmouseover事件在进入div时仅触发一次.
以下示例代码说明了我的问题:
function mouseEvent(event) {
var x = event.clientX;
var y = event.clientY;
document.getElementById('label').innerHTML = 'X=' + x + ' Y=' + y;
}Run Code Online (Sandbox Code Playgroud)
html {
height: 100%;
width: 100%;
}
body {
height: 100%;
width: 100%;
overflow: hidden;
margin-left: 0px;
margin-top: 0px;
margin-bottom: 0px;
margin-right: 0px;
}
#form1 {
height: 100%;
width: 100%;
}
#pageDiv {
height: 100%;
width: 100%;
}
#page {
height: 100%;
width: 100%;
}Run Code Online (Sandbox Code Playgroud)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body> …Run Code Online (Sandbox Code Playgroud)所以我在aspx页面上有一个控件(一张地图).我想写一些javascript来onload设置如下:
当鼠标停在控制=某些代码时
当鼠标移动=某些代码时(但仅当移动时间超过250毫秒时)
这可以触发代码停止然后移动...
function setupmousemovement() {
var map1 = document.getElementById('Map_Panel');
var map = document.getElementById('Map1');
map1.onmousemove = (function() {
var onmousestop = function() {
//code to do on stop
}, thread;
return function() {
//code to do on mouse move
clearTimeout(thread);
thread = setTimeout(onmousestop, 25);
};
})();
};
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何在移动代码中引入延迟.我以为我有这个......
function setupmousemovement() {
var map1 = document.getElementById('Map_Panel');
var map = document.getElementById('Map1');
map1.onmousemove = (function() {
var onmousestop = function() {
//code to do on stop
clearTimeout(thread2);
}, thread;
return function() { …Run Code Online (Sandbox Code Playgroud) 在Delphi 2007中,在鼠标移动事件中,我尝试使用以下命令更改鼠标光标:
procedure TFr_Board_Display.PaintBox_Proxy_BoardMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if left_mouse_button_down then begin
if some_condition then begin
Cursor := crDrag;
end
else begin
Cursor := crNoDrop;
end;
end
else begin
if some_other_condition then begin
Cursor := crHandPoint;
end
else begin
Cursor := crDefault;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
例如.但是,当鼠标左键按下时,我移动鼠标,光标不会更改为crDrag或crNoDrop.执行代码(例如Cursor:= crDrag;)但光标不会改变.当鼠标左键向上,我移动鼠标时,光标没有任何问题.
(我最初尝试使用一些Drag&Drop事件和属性,但无法按照我想要的方式工作.)
编辑:澄清所需的行为和格式化的代码.
编辑:谢谢你,Gamecat,但我希望当鼠标左键关闭时光标改变,鼠标移动光标时应该在crDrag和crNoDrop之间来回切换.
如何在控件中检测鼠标左键是否被按下时如何检测OnMouseMove?
我正在尝试用GMap将ac#程序放在一起,我想要将鼠标显示在屏幕底部的坐标.我已经在表单中添加了一个OnMouseMove方法,我确实得到了坐标,但前提是鼠标不在地图上.如果鼠标位于地图上,则不响应.我对c#相当新,所以我可能错过了一些相当简单的东西.有任何想法吗?下面是我现在正在使用的代码.
public partial class Form1 : Form
{
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
{
base.OnMouseMove(e);
if(e.Button == MouseButtons.Left)
{
int itest=2;
}
double X = mapexplr.FromLocalToLatLng(e.X, e.Y).Lng;
double Y = mapexplr.FromLocalToLatLng(e.X, e.Y).Lat;
string longitude = X.ToString();
string latitude = Y.ToString();
LongStrip.Text = longitude;
LatStrip.Text = latitude;
}
GMapOverlay overlayOne;
public Form1()
{
InitializeComponent();
}
private void mapexplr_Load(object sender, EventArgs e)
{
//initialisation de notre map
mapexplr.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache;
mapexplr.Position = new PointLatLng(35.571458, -85.547961);
mapexplr.DragButton = MouseButtons.Left;
mapexplr.SetCurrentPositionByKeywords("Tunisia"); …Run Code Online (Sandbox Code Playgroud) 我想要获得Form的鼠标位置的最佳方法.
我现在在变量中设置鼠标位置的值,以便在另一种方法"Like Form1_Click"中获取它们.
有没有更好的方法呢?
非常感谢你.
我已经创建了一个WPF应用程序,其中标题栏和chrome已关闭.我在整个应用程序周围都有一个边框,并认为在某些方面它会像chrome一样.我要做的第一件事就是让mousemove事件在单击鼠标时捕获鼠标的移动,以便窗口随鼠标移动.问题是如果鼠标移动太快,它会设法离开窗口,因此鼠标移动不再发生.无论鼠标的速度如何,我都能用普通的WinForm做到这一点,没有任何问题.有没有办法更有效地做到这一点,或者调整鼠标移动的轮询?也许除边境之外的其他容器会表现得更好?
我有一个MFC应用程序,用户必须在一个圆形会议周围移动鼠标,拖动一个mouvement.我需要在鼠标拖动"旋转"期间检索度数,我需要知道它是顺时针还是逆时针.
首先,为了确定旋转方向,我正在比较当前鼠标位置和用户单击以启动拖动的鼠标位置之间的x坐标.这很有效,直到用户旋转超过180度.
我该如何处理圆圈的另一半?
我不明白为什么 clientX 和 clientY 属性偏移到它们的实际位置。这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<!-- https://electronjs.org/docs/tutorial/security#csp-meta-tag -->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<p>The mouse is at</p><p id="mousecoords"> "hello" </p>
<canvas id="myCanvas" width="500" height="500" style="border:1px solid #000000;"></canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var coords = document.getElementById("mousecoords");
c.onmousemove = function(event){
var x = event.clientX;
var y = event.clientY;
coords.innerHTML= x + "," + y;
ctx.beginPath();
ctx.arc(x, y, 2, 0, Math.PI * 2, true);
ctx.fill();
};
</script> …Run Code Online (Sandbox Code Playgroud) 我想在鼠标悬停在按钮上时显示工具提示,只要鼠标悬停在按钮上,工具提示就应该跟随鼠标.实现这一目标的正确方法是什么?
当我添加一个调用了更新鼠标位置的tooltip.Show(...)的MouseMove事件时,它会非常闪烁,并且当鼠标停留时也会重绘工具提示.如果它是OwnerDraw工具提示,我可以看到默认的系统工具提示样式与自绘工具提示"战斗".