CSS:更改背景上的光标
我有一个背景图像作为CSS中的一个主体类的一部分:
body.soon1 {
background-color: white;
background-image: url(soon1a.png);
background-position: center;
background-repeat: no-repeat;
}
然后,我有一个JavaScript函数,将改变主体类。
我在后台创建图像的原因是,当脚本激活时,背景颜色和背景图像将完全同时更改,并且无法选择图像。
是否有可能只在悬停在背景图像上时更改光标类型? 我明白我可以放
cursor: pointer;
在主体样式中,但是这会使光标出现在整个页面上。
您可以查看当前的实时页面,当您单击页面上的任何位置时,背景更改的位置。
编辑:我现在有一些适合我的东西。 我添加了一个没有任何内容的居中的div:
div.clickme {
width:300px;
height:400px;
position:absolute;
left:50%;
top:50%;
margin:-150px 0 0 -200px;
cursor: pointer;
}
这适用于我,因为我可以设置自己的任意区域,但如果有人有更好的解决方案,请告诉我。
真的没有令人信服的理由使图像成为背景图像。 通过将图像放在两个包装中(不管视口如何,要求保证垂直和水平方向的绝对中心),您的服务会更好。
您可以通过填充对象来扩展数组,以便它可以保存图像和主体样式的可能值。 这样,即使您想稍后添加其他更改,也可以使用相同的方法(遍历数组)循环选择所需的所有更改。
另外,虽然网络浏览器对标准相当宽松,但符合简单的HTML 5要求并保持其功能确实很简单。
最后,我强烈建议你避免所谓的“时髦编码”。 尽管命名函数,变量等名称很有意思,可以让检查源代码的人感到高兴,但它会造成不必要的笨语言和较低的可维护性。 总之,即使你是唯一的维护者,这也是一种不好的做法。
请根据以下评论(缩进清理)观察新版本的源代码。
<html>
<head>
<title>Something Amazing Will Happen</title>
<style type="text/css">
body.light {
background-color: white;
}
body.dark {
background-color: black;
}
div.outside-wrapper {
position: absolute;
top: 50%;
width: 100%;
height: 1px;
overflow: visible;
}
div.inside-wrapper {
position: absolute;
top: 50%;
left: 50%;
width: 381px;
height: 393px;
margin: -197px 0 0 -191px;
cursor: pointer;
}
</style>
<script type="text/javascript">
styleIndex = 0;
var states = [{style: "light", image: "soon1a.png"}, {style: "dark", image: "soon2a.png"}];
function nextStyle() {
if (++styleIndex >= states.length)
styleIndex = 0;
var state = states[styleIndex];
document.body.className = state.style;
document.getElementById("clickme").src = state.image;
}
var tap = true;
document.addEventListener('touchstart',function(e) {
tap = true;
});
document.addEventListener('click',function(e) {
nextStyle()
tap = false;
});
document.addEventListener('touchmove',function(e) {
tap = false;
});
document.addEventListener('touchend',function(e) {
if(tap)
nextStyle();
});
</script>
</head>
<body class="light">
<div class="outside-wrapper">
<div class="inside-wrapper">
<img src="soon1a.png" id="clickme">
</div>
</div>
</body>
</html>
<!-- Don't ask me what it is. -->
尝试这个
body.soon1 {
background-color: white;
background-image: url(soon1a.png);
background-position: center;
background-repeat: no-repeat;
}
body.soon1:active{
cursor: pointer;
}
你可以做的是,将cursor: pointer
放在主体上,并将光标更改为子项。 做这样的事情:http://jsfiddle.net/HSdH3/
HTML:
<body>
<div></div>
</body>
CSS:
body {
background: red;
width:100%;
height: 100%;
}
body:hover {
cursor: pointer;
}
div {
width: 300px;
height: 300px;
margin: 0 auto;
background: white;
}
div:hover {
cursor: auto;
}
链接地址: http://www.djcxy.com/p/69325.html
上一篇: CSS: Change Cursor over background
下一篇: in Code in VS 2012