зміни курсору на вказівник пальця


234

У мене це є, aі я не знаю, що мені потрібно вставити в "onmouseover", щоб курсор змінився на вказівник пальця, як звичайне посилання:

<a class="menu_links" onclick="displayData(11,1,0,'A')" onmouseover=""> A </a>

Я десь прочитав, що мені потрібно поставити:

onmouseover="cursor: hand (a pointing hand)"

Але це не працює для мене.

Плюс я не впевнений, чи вважається це JavaScript, CSS або просто звичайний HTML.


це css, а подія onmouseover - подія javascript.
Скотт

Ви не ставите css безпосередньо в onmouseover = "". Також курсор: рука під час наведення курсору на ваше посилання має бути дією за замовчуванням. Якщо цього не відбувається, може виникнути інше питання.
Танк



3
lol "Рука ..... вказівна рука!" ха-ха, вибачте, я не втримався.
Крістін

Відповіді:


458
<a class="menu_links" onclick="displayData(11,1,0,'A')" onmouseover="" style="cursor: pointer;"> A </a>

Це css.

Або в таблиці стилів:

a.menu_links { cursor: pointer; }

2
Після тестування цього, здається, що необхідно мати як onmouseover = "" AND style = cursor: pointer; ". Якщо у вас просто є тег стилю, курсор вказівника вказівника зникне / за замовчуванням для стандартного вказівника після взаємодії одним клацанням миші. Добрий пост Скотт, дякую.
Nubtacular

1
@DnfD вам потрібно лише те, onmouseoverякщо немає href визначення. Якщо, як стандартний якір, там єhref визначення, то onmouseoverне треба.
Скотт

@DnfD прийнята відповідь начебто жахлива. це робить роботу, але не зрозуміло. вийміть mouseover=""і style="cursor: pointer;"залиште class="menu_links" це буде працювати! незалежно від того, hrefє він чи ні.
Jarett Lloyd

@Scott немає, вам не потрібно на mouseoverподію в там. дивіться мій попередній коментар до DnfD
Jarett Lloyd

@JarettLloyd багато що залежить від підтримки браузера та побудови CSS. Це відповідь 2012 року . Все змінилося за 6+ років.
Скотт,

52

Це можна зробити в CSS:

a.menu_links {
    cursor: pointer;
}

Це фактично поведінка за замовчуванням для посилань. Ви повинні або якось перекрити його в іншому місці свого CSS, або там немає hrefатрибуту (він відсутній у вашому прикладі).


у мене немає href coz, я не хочу залишати сторінку. його посилання, яке запускає функцію JS, і якщо я вставляю href = "#", воно переплутає її, і вона перезавантажує неправильну сторінку
Dvir Levy

2
@DvirLevy - Отже, або поверніть помилкове і використовуйте href="#", або просто використовуйте CSS, як я вам показав ...
Джозеф Сілбер

22

Мені подобається використовувати це, якщо у мене є лише одне посилання на сторінці:

onMouseOver="this.style.cursor='pointer'"


7

Ось щось круто, якщо ви хочете пройти цю миль із цим. в URL-адресі ви можете скористатись посиланням або зберегти зображення png та скористатися контуром. наприклад:

url ('активи / imgs / theGoods.png');

нижче код:

.cursor{
  cursor:url(http://www.icon100.com/up/3772/128/425-hand-pointer.png), auto;
}

Таким чином, це буде працювати лише під розміром 128 X 128, будь-якого більшого розміру та завантаження зображення. Але ви можете практично використовувати будь-яке зображення, яке вам потрібно! Це вважатиметься чистим css3 та деяким html. все, що вам потрібно зробити в html - це

<div class='cursor'></div>

і лише в цьому діві цей курсор покаже. Тому я зазвичай додаю його до тегу body.


6

Я думаю, що «найкраща відповідь» вище, хоч і програмно точна, насправді не відповідає на поставлене запитання. у запитанні задається питання, як змінити покажчик у події миші. Я бачу публікації про те, як може виникнути помилка десь - це не відповідь на запитання. У прийнятій відповіді подія наведення миші порожня ( onmouseover=""), а замість цього включена опція стилю. Неприємність, чому це було зроблено.

З посиланням запитувача може бути нічого поганого. врахуйте наступний html:

<a id=test_link onclick="alert('kinda neat);">Click ME!</a>

Коли миша користувача переходить на це посилання, вказівник не зміниться на руку ... натомість вказівник буде вести себе так, ніби він нависає над звичайним текстом. Можливо, цього не хочеться ... і так, вказівник миші потрібно сказати, щоб змінити.

відповідь, яку шукають, така: (яку опублікував інший):

<a id=test_link onclick="alert('Nice!');"
       onmouseover="this.style.cursor='pointer';">Click ME!</a>

Однак це ... кошмар, якщо у вас таких багато, або використовуйте подібні речі всюди і вирішите внести якісь зміни або нарватися на помилку. краще скласти для нього клас CSS:

a.lendhand {
  cursor: pointer;
}

тоді:

<a class=lendhand onclick="alert('hand is lent!');">Click ME!</a>

Є багато інших способів, які були б, мабуть, кращими, ніж цей метод. DIV s, BUTTON s, IMG s тощо можуть виявитись більш корисними. Я не бачу шкоди в використанні <a>...</a>.

жарет.


4

Додайте hrefатрибут, щоб зробити його дійсним посиланням & return false;у обробнику подій, щоб запобігти появі навігації;

<a href="#" class="menu_links" onclick="displayData(11,1,0,'A'); return false;" onmouseover=""> A </a>

(Або зробіть displayData()повернення помилковим і ..="return displayData(..)


3

Рішення через чистий CSS, як зазначено у відповіді, позначене як найкраще, не підходить для даної ситуації.

Приклад у цій темі не має нормального статичного атрибута href, він викликає лише JS, тому без JS він нічого не зробить.

Тож добре вмикати вказівник лише JS. Отже, рішення

onMouseOver="this.style.cursor='pointer'"

як згадувалося вище (але я не можу коментувати це) найкращий у цьому випадку. (Але так, як правило, для звичайних посилань, що не вимагають JS, краще працювати з чистим CSS без JS.)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.