Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery更改导航链接鼠标上方的背景色_Javascript_Jquery_Css_Background_Mouseover - Fatal编程技术网

Javascript Jquery更改导航链接鼠标上方的背景色

Javascript Jquery更改导航链接鼠标上方的背景色,javascript,jquery,css,background,mouseover,Javascript,Jquery,Css,Background,Mouseover,当我在导航菜单中的不同链接上悬停时,我想更改背景颜色。喂,链接一。。背景变为红色,导航2背景变为蓝色,导航3背景变为绿色等。但是现在,当我在这些页面上时,背景与鼠标悬停在链接上时相同。因此,第1页的背景将是红色,第2页=蓝色,第3页=绿色等等。您可以这样做 <a href="#" class="change-bg-color" data-bg-color="#ff0000">Link 1</a> <a href="#" class="change-bg-color"

当我在导航菜单中的不同链接上悬停时,我想更改背景颜色。喂,链接一。。背景变为红色,导航2背景变为蓝色,导航3背景变为绿色等。但是现在,当我在这些页面上时,背景与鼠标悬停在链接上时相同。因此,第1页的背景将是红色,第2页=蓝色,第3页=绿色等等。

您可以这样做

<a href="#" class="change-bg-color" data-bg-color="#ff0000">Link 1</a>
<a href="#" class="change-bg-color" data-bg-color="#00ff00">Link 2</a>
<a href="#" class="change-bg-color" data-bg-color="#0000ff">Link 3</a>

<script>
    $('a.change-bg-color').hover(function(){
        // Change you color
        $(body).css('background-color', this.getAttribute('data-bg-color') );
    },function(){
        // Back to the original color
        $(body).css('background-color', '#fff' ); // Supposing that #fff is your default bg color
    });
</script>

$('a.change-bg-color')。悬停(函数(){
//改变你的颜色
$(body.css('background-color',this.getAttribute('data-bg-color'));
},函数(){
//恢复原色
$(body.css('background-color','#fff');//假设#fff是默认的背景颜色
});

如果您希望“link1”、“link2”和“link3”页面具有不同的背景颜色,那么最好的方法应该是使用特定于页面的CSS类。它不需要javascript。

存储Cookie中所有链接的背景颜色信息,当您访问其中一个页面时,获取所有Cookie并比较当前页面的值并设置该颜色的背景

例如,当您将鼠标悬停在link1上时,设置一个类似于这对字符串“link1color”的cookie:“red”等。
当您访问其中一个页面时,获取cookie,找到页面的匹配cookie,获取背景颜色,并更新背景。

将背景颜色存储在数组中,并根据当前页面上的需要,在js/jquery的帮助下相应地从数组值更改值,因为如果阵列是全局定义的,那么您可以使用快速访问和低内存访问应用程序中的任何位置。

方法:

  • 在CSS中有三个不同的类-比如bkBlue、bkRed和bkGreen

    B.蓝色 { 背景色:“蓝色” }

  • 使用悬停事件,使用addClass和removeClass更改应用于链接的类

  • 将当前类值存储在会话变量中

  • 将会话变量中的类添加到当前页面


  • 另一种方法是,如果nav数量不多,则使用不同的id/类保留不同的悬停类,并使用特定的nav悬停来附加这些类。我希望你能理解,因为这是最简单的方法。Gud luck

    该数组将不会在不同页面上持续导航。因此,您建议使用变量污染全局环境?对于“全局定义”,您可以在一个js文件中创建它,并将其附加到index.html标题部分。或者,如果值小于一个小数组,则可以将其放入索引文件中。不,将所有变量值保留在一个数组中。此处是链接,只需将变量名称放置在索引值处,如:您确定这会起作用吗。全局定义变量并不意味着即使在同一个应用程序中,您也可以从不同的页面访问相同的变量。非常感谢,我将尝试类似的方法,我以前从未使用过Cookie,因此这将是一个很好的尝试。这是一个很难的方法,您可以使用比此更简单的js方法。