[英]Jquery Change background colour on Nav link mouseover
当我将鼠标悬停在导航菜单中的不同链接上时,我想更改背景的颜色。 说,链接一..背景变为红色,导航2变为蓝色,导航3背景变为绿色等。但是现在,当我在这些页面上时,背景与鼠标悬停时的背景相同链接。 因此,第1页背景将为红色,第2页=蓝色,第3页=绿色等。
将所有链接的背景颜色信息存储在cookie中,当您访问这些页面之一时,获取所有cookie并比较它们在当前页面中的值并设置该颜色的背景。
例如,当您将鼠标悬停在link1上时,设置一个类似于该字符串对的cookie“ link1color”:“ red”,依此类推。 当您访问这些页面之一时,获取cookie,找到与页面匹配的cookie,获取background-color并更新背景。
你可以做这样的事情。
<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>
而且,如果您希望“链接1”,“链接2”和“链接3”页面的背景颜色不同,最好的方法应该是使用特定于页面的CSS类。 它不需要javascript。
将您的背景色存储在数组中,并根据当前页面上的需要在js / jquery的帮助下从数组值中相应地更改值,因为如果数组是全局定义的,则您可以在应用程序中的任何位置进行快速访问而访问率低记忆。
方法:
CSS中有三个不同的类-说bkBlue,bkRed,bkGreen
.bkBlue {background-color:'blue'}
使用悬停事件,使用addClass和removeClass更改应用于链接的类。
将当前类的值存储在会话变量中。
将会话变量中的类添加到当前页面。
另一种方法是,如果nav数量不多,则使用不同的id / class保留不同的悬停类,并使用您的特定nav悬停附加该类。 希望您能理解,因为这是最简单的方法。 上帝的运气
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.