изменить курсор на указатель пальца


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; ". Если у вас просто есть тег style, курсор указателя указателя исчезнет / станет стандартным указателем после взаимодействия одним щелчком мыши. Хороший пост, Скотт, спасибо.
Nubtacular

1
@DnfD вам нужно только onmouseoverесли нет href определения. Если, как стандартный якорь, там естьhref определение, то onmouseoverне надо.
Скотт

@DnfD принятый ответ действительно ужасен. это делает работу, но не ясно. удалить mouseover=""и style="cursor: pointer;"оставить class="menu_links" это будет работать! независимо от того, hrefтам или нет.
Джаретт Ллойд

@Scott нет, вам не нужно на mouseoverсобытие в там. см. мой предыдущий комментарий к DnfD
Джаретт Ллойд,

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

52

Вы можете сделать это в CSS:

a.menu_links {
    cursor: pointer;
}

Это на самом деле поведение по умолчанию для ссылок. Вы должны либо каким-то образом переопределить его в другом месте вашего CSS, либо там нет hrefатрибута (это отсутствует в вашем примере).


у меня нет href, потому что я не хочу покидать страницу. это ссылка, которая запускает функцию JS, и если я вставляю href = "#", это портит ее и перезагружает неправильную страницу
Двир Леви

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

22

Мне нравится использовать эту, если у меня есть только одна ссылка на странице:

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


7

Вот что-то классное, если вы хотите пройти лишнюю милю с этим. в URL вы можете использовать ссылку или сохранить изображение PNG и использовать путь. например:

URL ( 'активы / ГИМ / 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>

и только в этом div этот курсор будет отображаться. Поэтому я обычно добавляю его в тег body.


6

Я думаю, что «лучший ответ» выше, хотя и программно точный, на самом деле не отвечает на поставленный вопрос. вопрос состоит в том, как изменить указатель в событии наведения мыши. Я вижу сообщения о том, что где-то может быть ошибка, не отвечающая на вопрос. В принятом ответе событие mouseover пустое ( 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 , кнопки , IMG и т. Д. Могут оказаться более полезными. Я не вижу вреда в использовании <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.