CSS:在背景图像上更改光标

前端之家收集整理的这篇文章主要介绍了CSS:在背景图像上更改光标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个背景图像作为CSS中的体类的一部分:
  1. body.soon1 {
  2. background-color: white;
  3. background-image: url(soon1a.png);
  4. background-position: center;
  5. background-repeat: no-repeat;
  6. }

然后我有一个javascript函数,将改变身体类.

我在后台运行图像的原因是,当脚本激活时,背景颜色和背景图像将在完全相同的时间发生变化,您无法选择图像.

是否有可能只在将鼠标悬停在背景图像上时更改光标类型?我明白我可以放

  1. cursor: pointer;

在体型中,但这使光标出现在整个页面上.

单击页面上的任意位置时,可以查看背景更改的live page,currently,.

编辑:我现在有一些对我有用的东西.我添加了一个没有任何内容的居中div:

  1. div.clickme {
  2. width:300px;
  3. height:400px;
  4. position:absolute;
  5. left:50%;
  6. top:50%;
  7. margin:-150px 0 0 -200px;
  8. cursor: pointer;
  9. }

这对我有用,因为我可以设置自己的任意区域,但如果有人有更好的解决方案,请告诉我.

解决方法

实际上没有令人信服的理由使图像成为背景图像.将图像放在两个包装器中(无论视口是什么,都需要保证垂直和水平的绝对居中),这样会更好.

您可以通过使用对象填充数组来扩展数组,以便它可以保存图像和正文样式的可能值.这样,即使您希望稍后添加其他更改,也可以使用相同的方法(循环遍历数组)来选择所需的所有更改.

此外,虽然Web浏览器对标准相当宽松,但遵循简单的HTML 5要求并保持功能仍然是微不足道的.

最后,我强烈建议你避免使用我称之为“行家编码”的东西.虽然将函数,变量等命名为晦涩的名称以使检查源代码的少数人感到高兴,但它会使语言变得不必要,并且可维护性降低.简而言之,即使你是唯一的维护者,这也是一种不好的做法.

根据下面的这些注释(使用缩进清理)观察源代码的新版本.

  1. <html>
  2. <head>
  3. <title>Something Amazing Will Happen</title>
  4. <style type="text/css">
  5. body.light {
  6. background-color: white;
  7. }
  8. body.dark {
  9. background-color: black;
  10. }
  11. div.outside-wrapper {
  12. position: absolute;
  13. top: 50%;
  14. width: 100%;
  15. height: 1px;
  16. overflow: visible;
  17. }
  18. div.inside-wrapper {
  19. position: absolute;
  20. top: 50%;
  21. left: 50%;
  22. width: 381px;
  23. height: 393px;
  24. margin: -197px 0 0 -191px;
  25. cursor: pointer;
  26. }
  27. </style>
  28. <script type="text/javascript">
  29. styleIndex = 0;
  30. var states = [{style: "light",image: "soon1a.png"},{style: "dark",image: "soon2a.png"}];
  31. function nextStyle() {
  32. if (++styleIndex >= states.length)
  33. styleIndex = 0;
  34. var state = states[styleIndex];
  35. document.body.className = state.style;
  36. document.getElementById("clickme").src = state.image;
  37. }
  38. var tap = true;
  39. document.addEventListener('touchstart',function(e) {
  40. tap = true;
  41. });
  42. document.addEventListener('click',function(e) {
  43. nextStyle()
  44. tap = false;
  45. });
  46. document.addEventListener('touchmove',function(e) {
  47. tap = false;
  48. });
  49. document.addEventListener('touchend',function(e) {
  50. if(tap)
  51. nextStyle();
  52. });
  53. </script>
  54. </head>
  55. <body class="light">
  56. <div class="outside-wrapper">
  57. <div class="inside-wrapper">
  58. <img src="soon1a.png" id="clickme">
  59. </div>
  60. </div>
  61. </body>
  62. </html>
  63. <!-- Don't ask me what it is. -->

猜你在找的CSS相关文章