2009-07-30 4 views
32

У меня есть ссылка, которая при щелчке, я бы хотел, чтобы она перемещала положение мыши вправо (или где-либо в пределах области просмотра, если на то пошло).jQuery Set Позиция мыши (не позиция курсора)

в коде вероятно, будет выглядеть примерно следующим образом:

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

Chaining не может быть необходимо, конечно, но подобный «набор позиции мыши» функциональность, что я после.

Я видел решения для перемещения позиции курсора в определенное место в тексте, но я не получал много от них.

+1

Это звучит как нечто, что действительно раздражает пользователей! Надеюсь, у вас есть веская причина для этого, а не то, что это возможно. – ScottE

+0

Я должен объяснить далее. Я использую великолепный плагин для hoverIntent от Brian для jQuery, а также меню, которое включает связанную вкладку, которая расширяет меню. Я анимация раздвигается, но hoverIntent пропускает зависание, если мышь остается неподвижной, когда меню оживляет. Звучит странно, но этот плагин улавливает все остальные классические мыши/оставляют осечки, которые обычно запускаются разработчиками. Он знает об этой проблеме и работает над ней для следующего выпуска. Быть способным каким-то образом переместить мышь на один пиксель было бы здорово. Либо клиентское, либо серверное решение было бы удивительным. – Michael

+1

, в то время как это звучит сначала краснеть, как что-то, что раздражало бы пользователей, позвольте мне описать ситуацию, в которой _not_ перемещение мыши будет раздражать пользователей и перемещать их, возможно, действительно понравится им ... представьте, что вы нажимаете что-то на веб-странице, а элементы на переупорядочить страницу; если мышь не двигалась, вы больше не находитесь над элементом, на который вы нажали; мышь не перемещалась относительно страницы, но она _has_ перемещалась относительно * содержимого *. «перемещение» мыши относительно страницы может потребоваться для обеспечения того, что мышь не двигалась. –

ответ

53

Механизм перемещения мыши с помощью JavaScript отсутствует.

+0

Любой механизм для ASP.Net, AJAX, jQuery, C#? Я знаю, что положение мыши можно прочитать через jQuery, может быть, есть способ разоблачить его через DOM? – Michael

+5

@Michael: Нет, позиция мыши доступна только для чтения для JavaScript. AJAX - это всего лишь метод связи для выполнения JavaScript на клиенте, чтобы поговорить с серверным приложением через HTTP. ASP.NET/C# является серверной, а область видимости ограничена сервером, на котором он выполняется. Единственный способ управлять мышью клиента - это клиентское приложение, которое работает в пользовательском пространстве, что означает, что они должны загружать и устанавливать что-то. – MyItchyChin

+1

Хотя это довольно поздний ответ, спасибо CptSkippy. Я поддержал и отметил как ответ для вашего комментария к моему вопросу. – Michael

9

Возможно, я ошибаюсь, но я не думаю, что можно переместить указатель мыши из клиентского сценария. Учитывая вероятность злоупотреблений, я, конечно, надеюсь, что это не так.

+0

Я определенно думал об этом. Должен ли я когда-либо сталкиваться с такой силой, я обязательно найду решение для этого и дам вам знать. Знаете ли вы о серверном скрипте для этого? Спасибо. – Michael

+0

@Michael: Скрипт на стороне сервера даже с меньшей вероятностью перемещает указатель мыши клиента. Он * может * перемещать указатель мыши с помощью элемента управления ActiveX (только для Internet Explorer), настраиваемого плагина, элемента управления .NET или, возможно, подписанного Java-апплета. –

4

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

4

Вы можете скрыть курсор и показать другое в другом месте.

Хорошо, если вы перемещаетесь в лабиринте, например. Курсор выглядит так, как будто он остановлен, но вы увидите его снова, когда вы выходите за окно.

+0

Могу я узнать, как это возможно, поскольку мне нужно его реализовать? – heyanshukla

+1

@heyanshukla Чтобы скрыть [курсор] (http://www.w3schools.com/cssref/pr_class_cursor.asp), вы можете использовать 'document.body.style.cursor = url ('empty.ico');' if у вас есть пустой файл значка. Или вы можете установить 'document.body.style.cursor = 'none';' но это работает только в Firefox. Конечно, он не может настроить координаты мыши, а может скрывать курсор. – Stano

+0

@ Сатно, спасибо за обновления. – heyanshukla

2

Как уже отмечали другие пользователи, для этого не существует механизма Javascript. Однако вы можете отключить мышь и реализовать курсор, чтобы делать то, что вам нужно. Вот ссылка, которая объясняет, как это сделать. How to implement a custom cursor.

Смежные вопросы