有关设置,订阅或处理mousemove事件的问题。
我的js代码应该以按钮类为目标,并在我的光标类上添加光标悬停导航 我尝试在按钮上添加填充,并且仅当我将鼠标悬停在填充上时脚本才起作用......
为什么有时在目标元素上 mousedown 后触发 mousemove 时 mouseup 无法正常工作
我正在尝试创建一个可拖动的输入字段。单击“创建输入”按钮时,将创建一个输入,并在创建的输入上注册 mousedown 事件。并且 DragStart 被触发,这进一步
我一直在尝试创建弹跳球动画。 我遇到了一个特殊的问题。我已经设法让球弹起,但由于某种原因,它似乎只滚到右边……
C# Winform ArgumentException 未处理
我只是想在桌面的副本上显示鼠标位置。 我有一个无边框、最大化并包含带有 DockStyle.Fill 的 PictureBox 的表单。在表单构造函数中,我创建了一个 b...
我有一个带有两只眼睛的 SVG,每个瞳孔都跟踪鼠标位置。 问题是,两只眼睛单独行动,而不是作为一个整体。例如,如果您将光标定位在双眼之间,...
在鼠标移动时对scrollLeft 和scrollTop 进行动画处理
我想根据鼠标光标的移动来滚动HTML页面,这样当鼠标光标向任意方向(X和Y)移动时,页面的滚动条随之移动,从而滚动页面。我愿意
我为标签编写了一个类,我希望能够在运行时使用鼠标移动和调整大小。 通过添加三个鼠标事件(label.MouseDown、label.MouseUp、label.MouseMove)即可轻松完成此操作
我创建了一个使用的用户控件 我创建了一个使用的用户控件 <UserControl ....... MouseMove="UserControl_MouseMove" MouseLeftButtonUp="UserControl_MouseLeftButtonUp"> 我创建了一个单例类,它仅在参数更改后更新: public class PopUpMovement { private PopUpMovement() { } private static PopUpMovement _instance; private static readonly object _instanceLock = new object(); public static PopUpMovement Instance() { if (_instance == null) { lock (_instanceLock) { if (_instance == null) { _instance = new PopUpMovement(); } } } return _instance; } public bool draggingPopup { get; set; } public bool CustomTablePopupClicked { get; set; } } 我的代码在用户控件的代码后面: private Point startPoint; private double initialHorizontalOffset; private double initialVerticalOffset; private Point initialMousePosition; private Point startDragPoint; //private bool CustomTablePopupClicked; private void UserControl_MouseMove(object sender, MouseEventArgs e) { if (PopUpMovement.Instance().draggingPopup) { else if (PopUpMovement.Instance().CustomTablePopupClicked) { Point currentMousePosition = e.GetPosition(this); // Get the mouse position relative to the UserControl double offsetX = currentMousePosition.X - initialMousePosition.X; double offsetY = currentMousePosition.Y - initialMousePosition.Y; CustomTablePopup.HorizontalOffset += offsetX; CustomTablePopup.VerticalOffset += offsetY; initialMousePosition = currentMousePosition; // Update initial position } } } private void UserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if(PopUpMovement.Instance().draggingPopup == true) { PopUpMovement.Instance().draggingPopup = false; PopUpMovement.Instance().CustomTablePopupClicked = false; Mouse.Capture(null); } } private void CustomTablePopup_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // Store the mouse position //draggingPopup = true; //PopUpMovement popUpMovement = PopUpMovement.Instance(); //popUpMovement.draggingPopup = true; PopUpMovement.Instance().draggingPopup = true; initialMousePosition = e.GetPosition(this); // Get the mouse position relative to the Window Mouse.Capture(this); // Capture mouse at the UserControl level } 如果用户第一次移动弹出窗口,它工作正常,但是,如果用户想再次移动它,则什么也不会发生,它会保持固定。那么,如何修复代码以便用户可以将弹出框移动到用户想要的任何位置? 我有一个“拖动适配器”(UWP),您应该能够移植到 WPF。您将其附加到用户控件,UC 就变得可拖动。 在UC中定义一个引用并在Loaded事件中初始化它。 (假设 UC 是 Canvas 子项)就是这样(没有 XAML 更改)。 private DragAdapter _da = null; _da = new DragAdapter( this, ( this.Parent as Canvas ) ); 节目: using Windows.Foundation; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Input; /// <summary> /// Best for "tool boxes". Makes them movable. /// </summary> public class DragAdapter { private UserControl _uc = null; private Canvas _canvas = null; private bool _moveMode = false; // Offsets of uc left, top from pointer press position. private double _ucOffsetX = 0; private double _ucOffsetY = 0; /// <summary> /// /// </summary> public DragAdapter( UserControl uc, Canvas canvas ) { _uc = uc; _canvas = canvas; uc.PointerPressed += ControlPointerPressed; uc.PointerMoved += ControlPointerMoved; uc.PointerReleased += ControlPointerReleased; } //============= // PRIVATE. //============= /// <summary> /// /// </summary> private void ControlPointerPressed( object sender, PointerRoutedEventArgs e ) { _uc.CapturePointer( e.Pointer ); Point pointerPosition = e.GetCurrentPoint( _canvas ).Position; _ucOffsetX = Canvas.GetLeft( _uc ) - pointerPosition.X; _ucOffsetY = Canvas.GetTop( _uc ) - pointerPosition.Y; _moveMode = true; e.Handled = true; } /// <summary> /// /// </summary> private void ControlPointerMoved( object sender, PointerRoutedEventArgs e ) { // TO DO: KEEP RECT IN BOUNDS. if ( _moveMode == false ) { return; } Point pointerPosition = e.GetCurrentPoint( _canvas ).Position; double x = pointerPosition.X + _ucOffsetX; double y = pointerPosition.Y + _ucOffsetY; Canvas.SetLeft( _uc, x ); Canvas.SetTop( _uc, y ); e.Handled = true; } /// <summary> /// /// </summary> private void ControlPointerReleased( object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e ) { _moveMode = false; _uc.ReleasePointerCapture( e.Pointer ); e.Handled = true; } } // end class.
我正在尝试创建一个游戏,其中对象(当前是圆形)在画布内随机生成,并且对象及其位置(加上其他信息)存储在数组中。 该物体...
我想要的:div“dragItem”应该水平移动。 如果鼠标光标位于具有“tag”类的 div 顶部,则“dragItem”的位置将发生变化...
我有一段代码可以用鼠标移动div对象。 让移动器类 = { __init: 函数 () { var elem = document.querySelector('.mover'), div = document.querySelector('...
我正在寻找一种在 MacBook 上闲置一段时间后移动鼠标的方法,由于某些限制,操作系统中的空闲设置无法访问,某些移动鼠标的软件也无法访问
这是我更新和修改的脚本,它完全可以工作,除了我想通用它......观察****我怎样才能做到这一点,这样我就不必执行 function(e){ BOX.Draggable.elemen...
addEventListener mousemove 及其事件参数的正确打字稿类型是什么?
问题:在不使用任何内容的情况下,我的 onMouseMove 函数的正确输入是什么? 导出类主要{ 私有 dTimer:数字; 构造函数(){ this.init(); } 私有初始化() { 这个。
您好,我正在编写一些代码来调整无边框表单的大小,但结果是错误的。我找不到问题出在哪里
当我尝试运行此代码时,输出的行为是意外的,我认为代码是正确的。 如果有人有一些见解请帮助我解决这个问题。 我尝试过调整鳕鱼...
我使用 html CSS 和 javascript 创建了这个项目。这个项目是关于移动与 mousemove 交互的网格画廊。我想做这个项目,但我不明白为什么不做
问题 我正在使用 C# 应用程序来记录键盘和鼠标移动,处理该移动并将串行数据发送到微控制器,该微控制器解释该数据并移动一组...
我正在尝试使用 js slider slick,但是当我在网站上包含滑块代码时,默认的“可拖动”选项不起作用。更具体地说,我无法捕获屏幕上的任何鼠标移动事件...
当我按住 btnn 类的按钮并向左和向右移动鼠标光标时,我希望按钮移动(向左和向右),并在释放鼠标光标时停止移动。 当我按住类 btnn 的按钮并向左和向右移动鼠标光标时,我希望按钮移动(向左和向右),并在释放鼠标光标时停止移动。 <div class="box1 d-flex flex-column justify-content-between h-100"> <div class="target d-flex gap-3"> <div class="block1"> <div class="square1"></div> <div class="square1"></div> <div class="square1"></div> </div> <div class="block1"> <div class="square1"></div> <div class="square1"></div> <div class="square1"></div> <div class="square1"></div> <div class="square1"></div> </div> <div class="block1"> <div class="square1"></div> <div class="square1"></div> <div class="square1"></div> </div> </div> <div class="Targeter"> <div class="btnn"></div> </div> </div> const moveButton = document.getElementById('moveButton'); let isMouseDown = false; moveButton.addEventListener('mousedown', () => { isMouseDown = true; moveButton.style.cursor = 'grabbing'; }); document.addEventListener('mouseup', () => { isMouseDown = false; moveButton.style.cursor = 'grab'; }); document.addEventListener('mousemove', (event) => { if (isMouseDown) { moveButton.style.left = `${event.clientX - moveButton.clientWidth / 2}px`; moveButton.style.top = `${event.clientY - moveButton.clientHeight / 2}px`; } });
我正在制作一个 C# WinForms 应用程序。由于某种原因,表单的 MouseMove 和 MouseClick 事件没有被触发。 (当我发现原因时,我可能会觉得自己像个白痴。) 这是一个