Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cursor not changing to pointer in Usemap/area case

Tags:

I have the following HTML code which I cannot get to work quite right in all browsers:

<div id ="right_header">              <img id = "usemapsignin" src="/images/sign-in-panel-wo-FB.png" usemap = "#signin"> </div>               <map name = "signin" >             <area shape = "rect" coords = "30,10, 150, 50" target = "_blank" alt = "signin" id="signin"                     onMouseOver="document.images['usemapsignin'].style.cursor='pointer'"             onMouseOut="document.images['usemapsignin'].style.cursor='auto'"/>             <area shape = "rect" coords = "0,113, 172, 150" target = "_blank" alt = "restowner" id = "restowner"                 onclick = "alert('Hello Restaurant Owner!')"   />         </map> 

I am trying to change the cursor to pointer when moved over a part of the usemap. But its not working in Chrome/Safari.

Any help will be appreciated.

like image 473
nitin Avatar asked Jul 05 '11 22:07

nitin


People also ask

How do I change my cursor back to normal?

Step 1: Click on the Search box located in the taskbar. Step 2: Type in "mouse." Step 3: Select Change your mouse settings from the resulting list of options to open the primary mouse settings menu. Step 4: Select Additional mouse options.

What is the mouse pointer that shows you can insert or change text in this area?

An I-cursor, also referred to as an I-beam pointer, is a mouse cursor, indicating the mouse is over an area where text can be typed. Its shape resembles the capital letter "I". When your mouse cursor is an I-beam, you can click to place your text cursor there.

What is place of cursor arrow is called?

It's named a mouse pointer because you're using a computer mouse to move around a pointer showing you where it would click.


2 Answers

Chrome and Safari don't support changing the CSS of map or area elements. The only straightforward way to get a mousepointer on an area is to have:

<area ... href="javascript:void(0);" /> 
like image 141
Nico Westerdale Avatar answered Sep 20 '22 20:09

Nico Westerdale


All of these solutions are hacks that don't work well (for me they didn't work at all). After much googling, and more pondering I determined the problem to be that the browser just does not know how to render the area element, therefore it cannot be styled. If you are using HTML5 elements you should be familiar with this challenge. That's when the light bulb went off..

To get around this simply set the area tag to be a block level element. Then you can style it as needed. Worked great for me:

area {   display: block;   cursor: pointer; } 
like image 38
elDuderino Avatar answered Sep 19 '22 20:09

elDuderino