2012-06-18 11 views
5

tengo el siguiente código pero no se parece a trabajar:¿Cambiar la imagen en el vuelo estacionario usando asp: imagebutton y CSS?

<td align="center" style="padding-bottom:52.5px"> 
<asp:ImageButton CssClass="RightArrow" ID="Image2" runat="server"  ImageUrl="/_layouts/Right_GrayArrow.png"/> 
</td> 

y una clase CSS para cambiar la imagen en vuelo estacionario:

.RightArrow:hover 
{ 
background-image: url('/_Layouts/Right_GreenArrow.png') !important; 
} 

por favor avise. Gracias

Respuesta

7

Un ImageButton controles se renderiza como un elemento <input type="image" /> con el ImageUrl propiedad de convertirse en el src atributo como:

<input type="image" src="/_layouts/Right_GrayArrow.png" /> 

Por lo tanto usted está solicitando una imagen de fondo a esta, que no se puede ver como la imagen src es siendo superpuesto en la parte superior.

usted tiene 2 opciones:


1) Cambie el ImageButton utilizar una imagen de fondo:

.RightArrow 
{ 
    width: /* width of image */ 
    height: /* height of image */ 
    background-image:url('/_layouts/Right_GrayArrow.png'); 
} 
.RightArrow:hover 
{ 
    background-image: url('/_Layouts/Right_GreenArrow.png'); 
} 

Si va a utilizar este método, sin embargo, que lo haría recomendamos usar un <asp:Button /> en su lugar. Parece inútil usar un <asp:ImageButton /> si ni siquiera está haciendo uso del atributo src.


2) Usar jQuery para cambiar la imagen en vuelo estacionario:

$(".RightArrow").hover(function(){ 
    $(this).attr("src", "/_Layouts/Right_GreenArrow.png"); 
}, 
function(){ 
    $(this).attr("src", "/_Layouts/Right_GrayArrow.png"); 
}); 

A tener en cuenta que esto sólo funcionará con javascript activado, y debe incluir la librería jQuery.

+0

Gracias! Probé la primera opción y no pude hacer que funcione. Debe haber perdido algo. ¡La segunda opción se ve muy bien también! – user1266515

+0

Actualización: ¡La primera opción funcionó! Había extraviado mi nombre de clase. ¡Gracias de nuevo! – user1266515

1

La propiedad ImageUrl no es lo mismo que establecer la imagen de fondo. Elimine CSS y configure las propiedades onmouseout y onmouseover en su página.

7

prefiero de esta manera:

<asp:ImageButton CssClass="RightArrow" ID="Image2" runat="server" ImageUrl="/_layouts/Right_GrayArrow.png" onmouseover="this.src='/_layouts/Right_GreenArrow.png'" onmouseout="this.src='/_layouts/Right_GrayArrow.png'"/> 

bye

+0

Si bien me gusta la flexibilidad del CSS, esta es una opción viable en algunos casos. –

Cuestiones relacionadas