有没有可能使用Javascript在页面刷新时随机生成预设的链接颜色和悬停颜色?

3

我从未尝试过JavaScript,但我只是想知道在学习这种编程语言之前是否真的可以做到这一点。

我花了几天时间在论坛上查找,并尝试使用已经在演示网站上生成的代码来查看更改某些属性如何影响整个部分。

我的CSS将'a:link'、'a:active'和'a:visited'指定为一组颜色,而'a:hover'则指定为其补色(#128EED=颜色,#ED7112=补色)。

我希望在加载任何页面时随机选择8种预定颜色之一,并且预定的随机颜色的补色成为'a:hover'的颜色。

在我开始尝试做这件事之前,任何信息都将不胜感激。

谢谢并致以亲切的问候。


可能是从JavaScript设置CSS伪类规则的重复问题。 - epascarello
尽管这篇文章可能与上面提到的文章相关,但我想指出有许多编程新手不知道特定术语,比如伪类,他们可能需要问一个非常基础的问题才能理解某些东西...每个人都要从某个地方开始! - jonniery
被接受的答案是错误的,因为你不能直接设置链接、激活和悬停。我所说的问题实际上已经有了一个关于如何做到这一点的答案。 - epascarello
2个回答

0

是的,你可以这样做。你可以通过javascript在元素上设置样式,你可以创建几个类来着色你需要的内容并随机应用这些类等。有多种解决方案可解决你的问题,但这很容易实现。

此外,如果你从事Web编程,学习javascript绝不是浪费时间。它可以大大减轻页面需要来回与服务器通信的压力,并添加HTML无法提供或难以提供的功能。


谢谢。我是一名摄影师,但我相信深入了解JS将会对我有所帮助,这样我就可以自己进行编辑。 - jonniery

-2

编辑:无法设置某些样式属性,包括悬停等。但是有解决方法,其中一个在评论中链接到了这个答案。如果我误导了您,请原谅。

是的,这是可能的!只需使用类似于以下内容的东西;假设您有一个名为ColorArray的数组,它是数组的数组(每个子数组都是互补颜色对):

我不确定.style后面的单词是否准确,但应该很容易查找。我将其分成5行,以便更容易看到发生了什么,但我相信有更好或更压缩的表达方式。

// choose a random complementary pair
var pair = ColorArray[Math.floor(Math.random() * CollorArray.length)];

// grab elements and assign them style attributes
document.getElementsByTagName("tag").style.link = pair[0]
document.getElementsByTagName("tag").style.active = pair[0]
document.getElementsByTagName("tag").style.visited = pair[0]

// Your complementary color assignment now:
document.getElementsByTagName("tag").style.hover = pair[1]

非常感谢,我一定会以此为基础,并让每个人知道它的使用情况,以便代码可以被其他人使用。 - jonniery
@JonathonRyan 不用谢。我最近学了JavaScript,发现这些视频非常有帮助,你也可以看看:http://www.youtube.com/user/eusmile06/videos?view=1,祝好运! - zallarak
1
这怎么是答案?你不能像这个答案暗示的那样直接设置:link :active:visited - epascarello
@epascarello 你说得对,谢谢指出。这个链接可能会有帮助:https://dev59.com/1kfRa4cB1Zd3GeqP6Rov - zallarak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接