2009-07-30 20 views
32

Mam łącze, które po kliknięciu chciałbym przesunąć pozycję myszy w prawo (lub gdziekolwiek w obrębie okna ekranu, jeśli o to chodzi).jQuery Ustaw pozycję myszy (nie pozycję kursora)

w kodzie to prawdopodobnie wyglądać podobnie do następującego:

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

Łańcuch może nie być konieczne, oczywiście, ale podobne „ustawić położenie myszy” funkcjonalność jest co jestem po.

Widziałem rozwiązania, aby przesunąć pozycję kursora do określonego miejsca w tekście, ale nie udało mi się z nich wiele zebrać.

+1

To brzmi jak coś, co naprawdę irytuje użytkowników! Mam nadzieję, że masz dobry powód, aby to zrobić, nie, że to możliwe. – ScottE

+0

Powinienem wyjaśnić dalej. Używam świetnej wtyczki Briana dla jQuery wraz z menu, które zawiera połączoną kartę, która rozszerza menu. Animuję wysuwanie, ale wskaźnik unosi się, gdy mysz pozostaje nieruchoma podczas animowania menu. Brzmi to dziwnie, ale ta wtyczka przechwytuje całą resztę klasycznego mouseenter/pozostawia niewypały, na które zwykle napotykają twórcy. On wie o tym problemie i pracuje nad nim dla następnej wersji. Być w stanie jakoś przesunąć mysz o jeden piksel byłby świetny. Rozwiązanie po stronie klienta lub po stronie serwera byłoby niesamowite. – Michael

+1

, chociaż brzmi to na pierwszy rzut oka, jak coś, co mogłoby zirytować użytkowników, pozwól mi opisać sytuację, w której _nie_ poruszanie myszą podrażniłoby użytkowników, a przenoszenie ich mogłoby im się podobać ... wyobraź sobie, że klikasz coś na stronie internetowej i elementy na zmiana strony; jeśli mysz się nie poruszyła, nie jesteś już nad elementem, na który kliknąłeś; mysz nie przesunęła się względem strony, ale została "przeniesiona" względem zawartości *. "przesunięcie" myszy względem strony może być wymagane w celu zapewnienia wrażenia, że ​​mysz się nie poruszyła. –

Odpowiedz

53

Nie ma mechanizmu do przesuwania myszy za pomocą JavaScript.

+0

Dowolny mechanizm ASP.Net, AJAX, jQuery, C#? Wiem, że pozycja myszy może być odczytana przez jQuery, może istnieje sposób na jej ujawnienie przez DOM? – Michael

+5

@Michael: Nie, pozycja myszy jest tylko do odczytu dla JavaScript. AJAX jest po prostu metodą komunikacji dla JavaScriptu wykonywanego na kliencie, aby rozmawiać z serwerem za pośrednictwem HTTP. ASP.NET/C# jest po stronie serwera i jego zasięg jest ograniczony do serwera, na którym działa. Jedynym sposobem kontrolowania myszy klienta jest aplikacja po stronie klienta działająca w przestrzeni użytkownika, co oznacza, że ​​pobierają i instalują coś. – MyItchyChin

+1

Chociaż jest to spóźniona odpowiedź, dziękuję CptSkippy. Przegłosowałem i zaznaczono jako odpowiedź na Twój komentarz do mojego pytania. – Michael

9

Mogę się mylić, ale nie sądzę, że można przesunąć wskaźnik myszy ze skryptu po stronie klienta. Biorąc pod uwagę potencjał nadużycia, mam oczywiście nadzieję, że tak nie jest.

+0

Zdecydowanie myślałem o tym, że się o to martwię. Gdybym kiedykolwiek spotkał się z taką mocą, z pewnością znajdę rozwiązanie i dam ci znać. Czy znasz skrypt po stronie serwera, aby to zrobić? Dzięki. – Michael

+0

@Michael: Skrypt po stronie serwera jest jeszcze mniej prawdopodobne, aby przenieść wskaźnik myszy klienta. Przeniesienie wskaźnika myszy przez kontrolkę ActiveX (tylko Internet Explorer), niestandardową wtyczkę, sterowanie .NET lub ewentualnie podpisany aplet Javy może być * możliwe. –

4

Nie ma sposobu na zmianę położenia myszy za pomocą JavaScript lub dowolnego skryptu po stronie klienta. Jedynym powodem jest to, aby nie podawać potencjalnemu nadużyciu skryptu po stronie klienta, jak podano wcześniej.

4

Można ukryć kursor i pokazać inny w innym miejscu.

Dobrze mieć podczas poruszania się w labiryncie na przykład. Kursor wygląda tak, jakby się zatrzymał, ale zobaczysz go ponownie po wyjściu poza okno.

+0

czy mogę wiedzieć, jak to możliwe, ponieważ muszę go wdrożyć? – heyanshukla

+1

@heyanshukla Aby ukryć [kursor] (http://www.w3schools.com/cssref/pr_class_cursor.asp), możesz użyć 'document.body.style.cursor = url ('empty.ico');' if masz pusty plik ikony. Lub możesz ustawić 'document.body.style.cursor = 'none';' ale działa to tylko w Firefoksie. Oczywiście nie można dostosować współrzędnych myszy, a jedynie ukryć kursor. – Stano

+0

@Snatno, dzięki za aktualizacje. – heyanshukla

2

Jak już wspomniali inni użytkownicy, nie ma na to żadnego mechanizmu Javascript. Możesz jednak wyłączyć mysz i zaimplementować kursor, aby zrobić to, czego potrzebujesz. Oto link wyjaśniający, w jaki sposób. How to implement a custom cursor.

Powiązane problemy