代码之家  ›  专栏  ›  技术社区  ›  psoares

加载页面时更改光标

  •  14
  • psoares  · 技术社区  · 14 年前

    所以我要做的是在加载页面时更改光标以等待。

    我认为这是有可能的CSS,我试图实现这一点时,有人点击一些链接,所以我是这样的:

    #something a:hover { cursor: hand; }
    #something a:active { cursor: wait; }
    

    但这不起作用,当鼠标悬停链接时是一只手,当等待一秒钟时是一只手,但我希望这个等待继续到新页面出现为止。

    所以我的问题是: 这是错的吗?实现我想要的?
    或者我必须使用javascript?

    3 回复  |  直到 14 年前
        1
  •  22
  •   Basic    5 年前

    这样做的方法如下:

    在第一页(单击链接后立即显示):

    <a href="http://www.example.com/Page2.html" onclick="document.body.style.cursor='wait'; return true;">
    

    在第二页(在新页完成加载之前显示):

    <script type="text/javascript">
        // Set the cursor ASAP to "Wait"
        document.body.style.cursor='wait';
    
        // When the window has finished loading, set it back to default...
        window.onload=function(){document.body.style.cursor='default';}
    </script>
    
        2
  •  2
  •   slebetman    14 年前

    正如“answered”所说,您可以使用css将光标附加到HTML元素上,HTML元素应该覆盖整个页面。

    但是,您需要使用onclick向页面中的每个锚点添加一个侦听器,onclick调用一个函数,该函数将光标设置在html或body元素上。当页面重新加载时,光标将再次回到默认状态,因为javascript将刷新。

    var anchors = document.getElementsByTagName("a");
    for(var i=0,len=anchors.length;i<len;i++)
    {
    
    anchors[i].onclick = function()
    {
    
    document.body.style.cursor = "wait";
    
    };
    
    }
    
        3
  •  1
  •   slebetman    14 年前

    的含义 cursor 与CSS选择器相关的属性是,当鼠标位于与选择器匹配的元素上时,使用光标。因此,要更改整个文档的光标,需要执行以下操作:

    html {
        cursor: wait;
    }
    

    显然,这将永远更改光标(或者直到用户关闭页面,以先到者为准)。要动态执行此操作,需要使用javascript:

    document.body.style.cursor = 'wait';
    

    注意 cursor:hand 仅由IE支持,仅用于IE 5。正确的光标名称是 pointer . 当然,如果你需要支持IE 5,你需要使用 光标:手 . 您可以使用类名来更改光标,而不是使用浏览器嗅探:

    CSS:

    .handCursor {
        cursor: pointer;
        cursor: hand;
    }
    

    JS:

    document.body.className = 'handCursor';