切换CSS背景颜色悬停和点击使用Javascript
Switch CSS background colour on hover and on click using Javascript
我一直在使用这个脚本切换CSS背景颜色点击,我一直试图改变它,所以第二种颜色将出现在悬停,将出现在点击。有人能帮我把它修好吗?
这是我的jsfiddle链接:
https://jsfiddle.net/pkrWV/70/var bodyObj, className, index;
bodyObj = document.getElementById('body');
index = 1;
className = [
'imageOne',
'imageTwo',
'imageThree',
];
function updateIndex(){
if(index === 0){
index = 1;
}else{
index = 0;
}
}
bodyObj.onclick = function(e){
e.currentTarget.className = className[index];
updateIndex();
}
如果你想在悬停时改变颜色,你只需要为你的类定义悬停选择器。像这样-
#body.imageOne:hover {
background-color: red;
}
var bodyObj, className, index;
bodyObj = document.getElementById('body');
index = 1;
className = [
'imageOne',
'imageTwo',
'imageThree',
];
function updateIndex() {
if (index === 0) {
index = 1;
} else {
index = 0;
}
}
bodyObj.onclick = function(e) {
e.currentTarget.className = className[index];
updateIndex();
}
html,
body,
#body {
height: 100%;
width: 100%;
}
#body.imageOne {
background-color: green;
}
/*Add this */
#body.imageOne:hover {
background-color: red;
}
#body.imageTwo {
background-color: red;
}
#body.imageThree {
background-color: black;
}
<div id="body" class="imageOne"></div>
如果你想使用javascript改变鼠标悬停的颜色,添加:
bodyObj.onmouseover = function(e){
e.currentTarget.className = className[2];
updateIndex();
}
这里是更新后的jsfiddle https://jsfiddle.net/pkrWV/82/
如果可能的话,我建议使用css:hover
#body:hover {
background-color: black;
}
对于鼠标悬停使用:如前所述的悬停状态。捕获onclick事件来改变CSS发生得很快。您可以使用:active状态,这种状态发生得非常快,并且返回时用户几乎看不到。已访问的状态将覆盖浏览器默认的紫色,它们使用以前访问过的链接。虽然改变访问链接的默认状态可能会给用户带来可用性问题,因为它会给他们带来一种不太熟悉的状态。
例:styles
cssa {
color: black;
}
a:hover {
color: red;
}
a:active {
color: gold;
}
a:visited {
color: purple;
}
我设法使用jQuery 2.1.3来做到这一点这里是提琴的链接:https://jsfiddle.net/pkrWV/109
html<div id="body" class="imageOne">
<button id="button" onclick="">Change</button>
</div>
js
$("#button").hover(function(){
$("#body").css("background-color", "red");
});
$("#button").click(function(){
$("#body").css("background-color", "green");
});
$("#button").mouseout(function(){
$("#body").css("background-color", "gray");
});
css html, body, #body {
height: 100%;
width: 100%;
}
我以为你正在寻找一种jquery的方式来做到这一点。这是一个空白的屏幕开始。小提琴
$("#color").mouseleave(function() {
$("body").css("background-color", "black");
});
$("#color").mouseover(function() {
$("body").css("background-color", "red");
});
$("#color").click(function() {
$("body").css("background-color", "green");
});
body,
#color {
height: 800px;
width: 800px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div id="color"> </div>
相关文章:
- 如何根据需要优雅地添加javascript/css
- 颗粒-JavaScript/CSS缩小SIMPLE/ADVANCED优化不起作用
- 在 javascript css 属性中使用变量
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- Javascript -> CSS (display:none to display:block)
- 如何使用javascript/css创建一个弹出屏幕的表单
- JavaScript:css 将开关切换到暗模式
- 删除加载javascript/css时的页面闪烁
- 使用 JavaScript CSS 的下拉菜单
- 影响JavaScript / CSS的HTML空间格式
- javascript css更改问题
- HTML/Javascript/CSS框堆叠在一起
- 优化JavaScript CSS下载
- 为什么javascript+CSS显示设置会使单选按钮不受欢迎
- 如何对齐画布旁边的文本和按钮(WebGL+JavaScript+CSS)
- 向上一个/下一个图像幻灯片添加计数器(仅限javascript/css)
- Javascript/CSS,如何保持更改
- SEO,PHP MasterPage和渲染阻塞Javascript/CSS
- Javascript&Css - onclick() 上的图像修改
- 如何使用变量制作纯 javascript .css() 函数