如何改变链接颜色与每个会话

How to change link colour with each session

本文关键字:颜色 会话 链接 何改变 改变      更新时间:2023-09-26

我试图找出一种方法来改变每个会话的站点的悬停链接的颜色。

我有一些javascript,可以改变每次悬停的悬停颜色…

<script>
    var colors = Array("#A3F8EF", "#FF7275", "#CBB6E7", "#FF9D74", "#FDF874"),
        idx;
    $("div a").hover(function() {
        idx = Math.floor(Math.random() * colors.length); // Pick random index
        $(this).css("background-color", colors[idx]);
    }, function() {
        $(this).css("background-color", "transparent");
    });
</script>

但是我不确定如何每次只做这一个?考虑使用这个javascript https://github.com/js-cookie/js-cookie

 if($.cookie("visited")){ //hover color set } else { //set hover color
 }

但是如果有其他的建议就太好了

——更多信息——

刚刚找到这个网站,它做了很多我想要的,但每天都在变化,而不是刷新。http://www.intworks.com/不太确定这是怎么做到的?

if(localStorage.getItem('popState') != 'shown'){
    //enter your code here to work on the initial session
        localStorage.setItem('popState','shown')
    });
}

你有没有考虑过HTML5本地存储?我发现它非常有用,看起来似乎可以适用于这里。只是需要考虑一下。

一个解决方案是再制作2个cookie whatsessioncolor,并将当前会话存储在whatsession中。
在你的JS代码只是检查当前会话是否等于cookie whatsession
如果两者相等,则只使用color cookie中的颜色。

请更改cookie的颜色,并将whatsession cookie更新为新会话。

我一直在尝试Matt的答案,并认为我找到了一个可行的解决方案如下:

<script>
    if (localStorage.getItem("visited") != "true") {
        var colors = Array("#A3F8EF", "#FF7275", "#CBB6E7", "#FF9D74", "#FDF874"),
            idx;
        idx = Math.floor(Math.random() * colors.length); // Pick random index
        sessionStorage.setItem("colour", colors[idx]);
        newColour = sessionStorage.getItem("colour");
    }
    document.getElementById("creditsTitle").style.color = newColour;
    $("div a").hover(function() {
        $(this).css("background-color", newColour);
    }, function() {
        $(this).css("background-color", "transparent");
    });
    sessionStorage.setItem("visited", "true");
</script>

这似乎工作得很好,但我肯定可以进一步改进。