Как изменить свойство css с помощью javascript
Я хочу изменить свойство CSS класса с помощью JavaScript. То, что я на самом деле хочу, это когда div находится в hoverd, другой div должен стать видимым.
Мой css как..
.left, .right{
margin:10px;
float:left;
border:1px solid red;
height:60px;
width:60px
}
.left:hover, .right:hover{
border:1px solid blue;
}
.center{
float:left;
height:60px;
width:160px
}
.center .left1, .center .right1{
margin:10px;
float:left;
border:1px solid green;
height:60px;
width:58px;
display:none;
}
И HTML файл похож на..
<div class="left">
Hello
</div>
<div class="center">
<div class="left1">
Bye
</div>
<div class="right1">
Bye1
</div>
</div>
<div class="right">
Hello2
</div>
Когда hello1 div наведен, bye1 div должен быть видимым, и аналогичным образом bye2 должен появиться, когда hello2 наведен.
http://jsfiddle.net/rohan23dec/TqDe9/1/
Ответы
Ответ 1
Для этого можно использовать свойство style
. Например, если вы хотите изменить границу -
document.elm.style.border = "3px solid #FF0000";
аналогично для цвета -
document.getElementById("p2").style.color="blue";
Лучше всего определить класс и сделать это -
document.getElementById("p2").className = "classname";
(Артефакты Cross Browser должны учитываться соответственно).
Ответ 2
Используйте document.getElementsByClassName('className').style = your_style
.
var d = document.getElementsByClassName("left1");
d.className = d.className + " otherclass";
Используйте одинарные кавычки для строк JS, содержащиеся в двойных кавычках атрибутов html
Пример
<div class="somelclass"></div>
тогда document.getElementsByClassName('someclass').style = "NewclassName";
<div class='someclass'></div>
затем document.getElementsByClassName("someclass").style = "NewclassName";
Это личный опыт.
Ответ 3
var hello = $('.right') // or var hello = document.getElementByClassName('right')
var bye = $('.right1')
hello.onmouseover = function()
{
bye.style.visibility = 'visible'
}
hello.onmouseout = function()
{
bye.style.visibility = 'hidden'
}
Ответ 4
Только для информации это можно сделать с помощью CSS только с небольшими изменениями HTML и CSS.
HTML:
<div class="left">
Hello
</div>
<div class="right">
Hello2
</div>
<div class="center">
<div class="left1">
Bye
</div>
<div class="right1">
Bye1
</div>
</div>
CSS
.left, .right{
margin:10px;
float:left;
border:1px solid red;
height:60px;
width:60px
}
.left:hover, .right:hover{
border:1px solid blue;
}
.right{
float :right;
}
.center{
float:left;
height:60px;
width:160px
}
.center .left1, .center .right1{
margin:10px;
float:left;
border:1px solid green;
height:60px;
width:58px;
display:none;
}
.left:hover ~ .center .left1 {
display:block;
}
.right:hover ~ .center .right1 {
display:block;
}
и DEMO: http://jsfiddle.net/pavloschris/y8LKM/
Ответ 5
Это очень просто, используя jQuery.
Например:
$(".left").mouseover(function(){$(".left1").show()});
$(".left").mouseout(function(){$(".left1").hide()});
Я обновляю вашу скрипку:
http://jsfiddle.net/TqDe9/2/
Ответ 6
С помощью Jquery:
парить (...)
$(".left").hover(function(){ $(".left1").toggle() } );
$(".right").hover(function(){ $(".right1").toggle()} );
JSFiddle