我正在编写一些代码,试图在每次重新加载时更改游标,只使用javascrip. 我用的是Math.Ranular,因为我有13种不同的光标(这是吉卜力主题)

它适用于缺省设置,因为我在html元素上更改了它

但我也希望所有的指针都能改变. 为了清楚起见,在每次重新加载时,我需要放入一组两个游标:一个用于默认游标,另一个用于悬停/指针游标

而我似乎做不到. 从整体上看,光标没有不同的状态(就像它是一种对象),但元素有类(像<a>元素),可以将光标图像更改为指针.

我不能覆盖<a>基本状态.

下面是我的rn代码(我是一名学生,所以可能不是很好):

let cursor = Math.floor(Math.random() * 13);
console.log(cursor);

const urlDefault = `url('cursors/Click${cursor}.svg')`;
const urlGrab = `url('cursors/Grab${cursor}.svg')`;


document.querySelector("html").style.cursor = urlDefault + ", default";




let liens = document.querySelectorAll("a");
let i = 0

while (i<liens.length) {
    liens[i].addEventListener('mouseover', () => { document.querySelector("html").style.cursor = urlGrab + ", pointer"; })  
    liens[i].addEventListener('mouseleave', () => { document.querySelector("html").style.cursor = urlDefault + ", default"; }) 
    i++;
}

推荐答案

要覆盖<a>个元素的css cursor: pointer属性,您可以使用JavaScript直接修改每个<a>元素的样式.下面是您可以这样做的方法:

   window.onload = function() {
    let cursor = Math.floor(Math.random() * 13);
    const urlDefault = `url('cursors/Click${cursor}.svg'), default`;
    const urlGrab = `url('cursors/Grab${cursor}.svg'), pointer`;

    document.querySelector("html").style.cursor = urlDefault;

    let links = document.querySelectorAll("a");
    for (let i = 0; i < links.length; i++) {
        links[i].style.cursor = urlGrab;
    }
}

Javascript相关问答推荐

fetch在本地设置相同来源的cookie,但部署时相同的代码不会设置cookie

我应该在redux reducer中调用其他reducer函数吗?

判断表格单元格中是否存在文本框

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

加载背景图像时同步旋转不显示的问题

对网格项目进行垂直排序不起作用

闭包是将值复制到内存的另一个位置吗?

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

如何在Angular拖放组件中同步数组?

如何在不影响隐式类型的情况下将类型分配给对象?

MongoDB受困于太多的数据

使用父标签中的Find函数查找元素

打字脚本中方括号符号属性访问和拾取实用程序的区别

将基元传递给THEN处理程序

我想使用GAS和HTML将从Electron 表格中获得的信息插入到文本字段的初始值中

无法设置RazorPay订阅API项目价格

P5.js中的分形树

需要刷新以查看Mern堆栈应用程序中的更改

如何在Java脚本中添加一个可以在另一个面板中垂直调整大小的面板?

对象作为react 子对象无效(已找到:具有键的对象{type,props}).如果要呈现一个子级集合,请改用数组