jQuery Задаване на позиция на мишката (не позиция на курсора)

Имам връзка, върху която бих искал, когато щракна, да премести позицията на мишката надясно (или където и да е в рамките на прозореца за изглед, за този въпрос).

в код вероятно ще изглежда подобно на следното:

$('a#expand').click(function(e){
    $(document)
       .mouseXPos(e.pageX + 50)
       .mouseYPos(e.pageY + 50);
});

Верижното свързване може да не е необходимо, разбира се, но подобна функционалност „задаване на позиция на мишката“ е това, което преследвам.

Виждал съм решения за преместване на позицията на курсора до определено място в текста, но не разбрах много от тях.


person Michael    schedule 30.07.2009    source източник
comment
Това звучи като нещо, което наистина ще раздразни потребителите! Надявам се, че имате основателна причина да направите това, не че е възможно.   -  person ScottE    schedule 30.07.2009
comment
Трябва да обясня допълнително. Използвам страхотния плъгин hoverIntent на Brian за jQuery, заедно с меню, което включва свързан раздел, който разширява менюто. Анимирам плъзгането навън, но hoverIntent не задейства задържането, ако мишката остане неподвижна, докато менюто се анимира. Звучи странно, но този плъгин улавя всички останали класически проблеми с mouseenter/leave, които разработчиците обикновено срещат. Той знае за този проблем и работи по него за следващото издание. Да можеш по някакъв начин да преместиш мишката с един пиксел нагоре би било страхотно. Решението от страна на клиента или от страна на сървъра би било страхотно.   -  person Michael    schedule 03.08.2009
comment
въпреки че на пръв поглед това звучи като нещо, което би раздразнило потребителите, позволете ми да опиша ситуация, при която неместването на мишката би раздразнило потребителите, а преместването й може всъщност да им хареса... представете си, че щракнете върху нещо върху уеб страницата и елементите на страницата се пренареждат; ако мишката не се е преместила, вече не сте над елемента, върху който сте кликнали; мишката не се е преместила спрямо страницата, но се е преместила спрямо съдържанието. може да е необходимо преместване на мишката спрямо страницата, за да се осигури усещането, че мишката не се е преместила.   -  person David Alpert    schedule 16.04.2010


Отговори (6)


Няма механизъм за преместване на мишката чрез JavaScript.

person MyItchyChin    schedule 30.07.2009
comment
Някакъв механизъм за ASP.Net, AJAX, jQuery, C#? Знам, че позицията на мишката може да се прочете чрез jQuery, може би има начин да се изложи чрез DOM? - person Michael; 03.08.2009
comment
@Michael: Не, позицията на мишката е само за четене за JavaScript. AJAX е просто метод за комуникация за JavaScript, изпълняван на клиента, за да говори със сървърно приложение чрез HTTP. ASP.NET/C# е от страна на сървъра и обхватът му е ограничен до сървъра, на който се изпълнява. Единственият начин да контролирате мишката на клиента е с приложение от страна на клиента, което се изпълнява в потребителското пространство, което означава да ги накарате да изтеглят и инсталират нещо. - person MyItchyChin; 03.08.2009
comment
Въпреки че това е доста късен отговор, благодаря ви CptSkippy. Гласувах за и маркирах като отговор за вашия коментар на моя въпрос. - person Michael; 01.02.2011
comment
Ако отделите малко време и бих го помислил за прекалено, но може ли Silverlight да изпълни действието, тъй като XAP и приложението живеят на клиента? - person Michael; 01.02.2011
comment
@Michael: Не, Silverlight не може да изпълнява неуправляем код и единственият начин за управление на мишката би бил чрез User32.dll. Ако приложението Silverlight беше извън браузъра, то можеше да извика COM, който можеше да обвие user32.dll, но не мисля, че изобщо имахте предвид това. - person MyItchyChin; 03.02.2011

Може и да греша, но не мисля, че е възможно да преместите показалеца на мишката от клиентски скрипт. Предвид възможността за злоупотреба, аз със сигурност се надявам да не е така.

person Jason Musgrove    schedule 30.07.2009
comment
Определено бях мислил за притеснението за това. Ако някога попадна на такава сила, със сигурност ще намеря решение за това и ще ви уведомя. Знаете ли за сървърен скрипт за това? Благодаря. - person Michael; 03.08.2009
comment
@Michael: Скриптът от страна на сървъра е дори по-малко вероятно да премести показалеца на мишката на клиента. Може да е възможно да преместите показалеца на мишката чрез ActiveX контрола (само за Internet Explorer), персонализирана добавка, .NET контрола или евентуално чрез подписан Java аплет. - person Jason Musgrove; 04.08.2009

Няма начин да се извърши промяна на позицията на мишката чрез JavaScript или който и да е скрипт от страна на клиента. Единствената причина за това е да не се даде възможност на скрипт от страна на клиента за злоупотреба, както беше посочено по-горе.

person George    schedule 11.08.2009

Можете да скриете курсора и да покажете друг на друго място.

Добре е, когато се движите в лабиринт например. Курсорът изглежда като спрял, но ще го видите отново, когато излезете извън прозореца.

person Zuul    schedule 08.02.2011
comment
мога ли да знам как е възможно, тъй като трябва да го внедря? - person heyanshukla; 08.05.2012
comment
@heyanshukla За да скриете курсор, можете да използвате document.body.style.cursor = url('empty.ico');, ако имате празен файл с икони . Или можете да зададете document.body.style.cursor = 'none';, но това работи само във Firefox. Разбира се, не може да персонализира координатите на мишката, може само да скрие курсора. - person Stano; 12.08.2012

Както други потребители вече споменаха, няма механизъм за това в Javascript. Можете обаче да деактивирате мишката и да приложите курсор, за да направите това, от което се нуждаете. Ето връзка, която обяснява как. Как да внедрим персонализиран курсор.

person mahsa.teimourikia    schedule 07.09.2012

Можете да промените позицията на превъртане на картата, която автоматично ще премести показалеца ви до желаната позиция;

$(document).scrollTop();

В някои случаи от мен се изискваше да задържа показалеца на същото квадратче за отметка, въпреки че бутон показване/скриване причиняваше бълбукане... така че направих нещо подобно;

$(document).scrollTop( $(document).scrollTop() + parseInt($('.btn-show-selected-group').outerHeight()) );
$(document).scrollTop( $(document).scrollTop() - parseInt($('.btn-show-selected-group').outerHeight()) );
person Wajahat Ali    schedule 07.05.2018