usar una style propiedades propiedad con clase cambiar javascript html css dhtml

una - style.background javascript



Cambiar: desplaza las propiedades de CSS con JavaScript (8)

Declare una var global

var td

Luego seleccione su cerdo guiena <td> obteniéndolo por su id , si quiere cambiarlos todos, entonces

window.onload = function () { td = document.getElementsByTagName("td"); }

Haga que se active una función y un bucle para cambiar todas las td ''s deseadas

function trigger() { for(var x = 0; x < td.length; x++) { td[x].className = "yournewclass"; } }

Ve a tu hoja de CSS:

.yournewclass:hover { background-color: #00ff00; }

Y eso es todo, con esto puedes hacer que todas tus etiquetas <td> tengan un background-color: #00ff00; cuando está suspendido cambiando su propiedad css directamente (cambiando entre clases css).

Necesito encontrar una manera de cambiar CSS: propiedades de desplazamiento usando JavaScript.

Por ejemplo, supongamos que tengo este código HTML:

<table> <tr> <td>Hover 1</td> <td>Hover 2</td> </tr> </table>

Y el siguiente código CSS:

table td:hover { background:#ff0000; }

Me gustaría usar JavaScript para cambiar las propiedades de desplazamiento <td> a, por ejemplo, fondo: # 00ff00. Sé que podría acceder a la propiedad de fondo de estilo usando JavaScript como:

document.getElementsByTagName("td").style.background="#00ff00";

Pero no sé de un equivalente de JavaScript para: hover. ¿Cómo cambio estos <td> ''s: fondo emergente usando JavaScript?

¡Tu ayuda es muy apreciada!


En realidad, esto no agrega el CSS a la celda, pero da el mismo efecto. Si bien proporciona el mismo resultado que los anteriores, esta versión es un poco más intuitiva para mí, pero soy un novato, así que tómalo por lo que vale:

$(".hoverCell").bind(''mouseover'', function() { var old_color = $(this).css("background-color"); $(this)[0].style.backgroundColor = ''#ffff00''; $(".hoverCell").bind(''mouseout'', function () { $(this)[0].style.backgroundColor = old_color; }); });

Esto requiere configurar la clase para cada una de las celdas que desea resaltar para "hoverCell".


Las clases pseudo como :hover nunca se refieren a un elemento, sino a cualquier elemento que satisfaga las condiciones de la regla de la hoja de estilo. Debe editar la regla de la hoja de estilo , agregar una nueva regla o agregar una nueva hoja de estilo que incluya la nueva regla de :hover .

var css = ''table td:hover{ background-color: #00ff00 }''; var style = document.createElement(''style''); if (style.styleSheet) { style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } document.getElementsByTagName(''head'')[0].appendChild(style);


Lo que puede hacer es cambiar la clase de su objeto y definir dos clases con diferentes propiedades de desplazamiento. Por ejemplo:

.stategood_enabled:hover { background-color:green} .stategood_enabled { background-color:black} .stategood_disabled:hover { background-color:red} .stategood_disabled { background-color:black}

Y esto lo encontré en: Cambiar la clase de un elemento con JavaScript

function changeClass(object,oldClass,newClass) { // remove: //object.className = object.className.replace( /(?:^|/s)oldClass(?!/S)/g , '''' ); // replace: var regExp = new RegExp(''(?:^|//s)'' + oldClass + ''(?!//S)'', ''g''); object.className = object.className.replace( regExp , newClass ); // add //object.className += " "+newClass; } changeClass(myInput.submit,"stategood_disabled"," stategood_enabled");


No can''t cambiar o alterar el selector de :hover actual :hover través de Javascript. Sin embargo, puede usar el mouseenter para cambiar el estilo y volver a mouseleave el mouseleave (gracias, @Bryan).


Recomendaría reemplazar todo :hover propiedades de :hover a :active cuando detecta que el dispositivo admite el toque. Simplemente llame a esta función cuando lo haga touch()

function touch() { if (''ontouchstart'' in document.documentElement) { for (var sheetI = document.styleSheets.length - 1; sheetI >= 0; sheetI--) { var sheet = document.styleSheets[sheetI]; if (sheet.cssRules) { for (var ruleI = sheet.cssRules.length - 1; ruleI >= 0; ruleI--) { var rule = sheet.cssRules[ruleI]; if (rule.selectorText) { rule.selectorText = rule.selectorText.replace('':hover'', '':active''); } } } } } }


Si se adapta a su propósito, puede agregar la funcionalidad hover sin usar css y usar el evento onmouseover en javascript.

Aquí hay un fragmento de código

<div id="mydiv">foo</div> <script> document.getElementById("mydiv").onmouseover = function() { this.style.backgroundColor = "blue"; } </script>


Tuve esta necesidad una vez y creé una pequeña biblioteca para, que mantiene los documentos CSS

https://github.com/terotests/css

Con eso puedes decir

css().bind("TD:hover", { "background" : "00ff00" });

Utiliza las técnicas mencionadas anteriormente y también trata de resolver los problemas entre navegadores. Si, por alguna razón, existe un navegador antiguo como IE9, limitará el número de etiquetas STYLE, porque el navegador IE más antiguo tenía este límite extraño para el número de etiquetas STYLE disponibles en la página.

Además, limita el tráfico a las etiquetas actualizando las etiquetas solo periódicamente. También hay un apoyo limitado para crear clases de animación.