JS 实现导航栏悬停效果_javascript技巧
JS-实现导航栏悬停
先布个局:
添加简单的样式:
div.main{
width: 800px;
background: #CCC;
margin: 10px auto 0;
position: relative;
}
div.content{
width: 800px;
height: 400px;
background: yellow;
margin: 10px auto 0;
}
div.navigation{
width: 800px;
height: 40px;
background: red;
margin: 4px auto 0;
top: 400px;
left: 0px;
position: absolute;
}
div.tab{
width: 195px;
height: 40px;
background: blue;
float: left;
margin-left: 5px;
}
JS:
//记录导航条原来在页面上的位置
var naviga_offsetTop = 0;
//IE7不识别getElementsByClassName,为了兼容自定义一个
function my_getElementsByClassName(class_name) {
var el = [];
//获取所有元素
_el = document.getElementsByTagName('*');
//通过className刷选
for (var i=0; i<_el.length i>if (_el[i].className == class_name ) {
el[el.length] = _el[i];
}
}
return el;
}
//导航条,悬停在顶部
function naviga_stay_top(){
var a_navigation_bar = [];
if(document.getElementsByClassName){//Chrome, FF
a_navigation_bar = document.getElementsByClassName("navigation");
} else {//IE
a_navigation_bar = my_getElementsByClassName("navigation");
}
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
if( scrollTop > naviga_offsetTop){
a_navigation_bar[0].style.top = scrollTop + "px";
} else {
a_navigation_bar[0].style.top = naviga_offsetTop + "px";
}
}
//给导航条上四个tab,加上点击事件。
window.onload=function(){
var a_tabs = [];
if( document.getElementsByClassName ){//Chrome, FF
a_tabs = document.getElementsByClassName("tab");
}else{ //IE
a_tabs = my_getElementsByClassName("tab");
}
var a_contents = [];
if( document.getElementsByClassName ){//Chrome, FF
a_contents = document.getElementsByClassName("content");
}else{//IE
a_contents = my_getElementsByClassName("content");
}
a_tabs[0].onclick=function(){
window.scrollTo(0, a_contents[2].offsetTop);
}
a_tabs[1].onclick=function(){
window.scrollTo(0, a_contents[3].offsetTop);
}
a_tabs[2].onclick=function(){
window.scrollTo(0, a_contents[4].offsetTop);
}
a_tabs[3].onclick=function(){
window.scrollTo(0, a_contents[5].offsetTop);
}
//获取页面上,导航条到顶部的位置
var a_navigation_bar = [];
if(document.getElementsByClassName){//Chrome, FF
a_navigation_bar = document.getElementsByClassName("navigation");
} else {//IE
a_navigation_bar = my_getElementsByClassName("navigation");
}
naviga_offsetTop = a_navigation_bar[0].offsetTop;
//给滚动条以及鼠标加上滚动事件
// window.onscroll= naviga_stay_top;
// document.onmousewheel= naviga_stay_top;
if( window.attachEvent) //IE
{
window.attachEvent("onmousewheel", naviga_stay_top);
window.attachEvent("onscroll", naviga_stay_top);
document.attachEvent("onmousewheel", naviga_stay_top);
document.attachEvent("onscroll", naviga_stay_top);
} else {//Chrome ,FF
window.addEventListener("mousewheel", naviga_stay_top,false);
window.addEventListener("scroll", naviga_stay_top,false);
document.addEventListener("mousewheel", naviga_stay_top,false);
document.addEventListener("scroll", naviga_stay_top,false);
}
}
不知道什么原因,在IE上,滚动滚动条或者鼠标滚轮的时候,导航栏会抖动;而在Chrome和FF上有没有任何问题。还望高人指点。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

抖音界面的导航栏位于顶部,是用户快速访问不同功能和内容的重要通道。随着抖音的不断更新,用户可能希望能够根据个人喜好和需求对导航栏进行自定义和调整。一、抖音顶部的导航栏如何调整?通常,抖音的顶部导航栏会展示一些热门频道,让用户方便快速浏览和查看感兴趣的内容。如果您想调整顶部频道的设置,只需按照以下步骤操作即可:打开抖音应用并登录您的账号。在主界面上方找到导航栏,通常位于屏幕中间或顶部。点击导航栏上方的“+”符号或类似的按钮,进入频道编辑界面。在频道编辑界面中,您可以看到默认的热门频道列表。您可以通

纯CSS实现带阴影效果的菜单导航栏的实现步骤,需要具体代码示例在网页设计中,菜单导航栏是一个非常常见的元素。通过给菜单导航栏添加阴影效果,不仅可以增加其美观度,还可以提升用户体验。在本文中,我们将使用纯CSS来实现一个带阴影效果的菜单导航栏,并提供具体的代码示例供参考。实现步骤如下:创建HTML结构首先,我们需要创建一个基本的HTML结构来容纳菜单导航栏。以

纯CSS实现响应式导航栏的下拉选项卡菜单效果的实现步骤导航栏是网页中常见的元素之一,而下拉选项卡菜单则是导航栏中经常使用的一种效果,能够提供更多的导航选项。本文将介绍如何使用纯CSS实现一个响应式的导航栏下拉选项卡菜单效果。步骤一:搭建基础HTML结构我们首先需要搭建一个基础的HTML结构来进行演示,并且为这个导航栏添加一些样式。下面是一个简单的HTML结构

纯CSS实现菜单导航栏的悬浮效果的实现步骤随着Web设计的不断进步,用户对于网站的需求也越来越高。为了提供更好的用户体验,悬浮效果在网站设计中得到了广泛应用。本文将介绍如何使用纯CSS来实现菜单导航栏的悬浮效果,以提升网站的可用性和美观性。创建基本菜单结构首先,我们需要在HTML文档中创建菜单的基本结构。以下是一个简单的示例:<navclass=&q

如何使用PHP开发简单的导航栏和网址收藏功能导航栏和网址收藏功能是网页开发中常见并且实用的功能之一。本文将介绍如何使用PHP语言开发一个简单的导航栏和网址收藏功能,并提供具体的代码示例。创建导航栏界面首先,我们需要创建一个导航栏界面。导航栏通常包含一些链接,用于快速导航到其他页面。我们可以使用HTML和CSS来设计并排列这些链接。以下是一个简单的导航栏界面的

在Discuz论坛中,导航栏是用户访问网站时经常接触到的部分之一,因此定制导航栏可以为论坛增添独特的个性化风格,提升用户体验。接下来将介绍如何在Discuz论坛中进行导航栏的个性化定制,并提供具体的代码示例。首先,我们需要登录到Discuz的后台管理系统,进入“界面”->“导航设置”页面。在这个页面上,我们可以对导航栏进行各种设置和定制。以下是一些

如何使用JavaScript实现网页底部固定导航栏的背景颜色渐变效果?在现代网页设计中,固定导航栏已成为一种常见的布局方式。如果你想为网页底部固定导航栏添加一个背景颜色渐变效果,JavaScript是一个非常适合的选择。本文将向你介绍如何使用JavaScript来实现这一效果,并提供具体的代码示例。步骤1:HTML结构首先,我们需要在HTML

固定定位增强社交媒体平台的顶部导航栏功能在当今社交媒体的盛行时代,拥有一个功能强大的顶部导航栏对于社交媒体平台来说至关重要。顶部导航栏不仅可以提供用户导航网站的便利性,还能提升用户体验。本文将介绍如何通过固定定位增强社交媒体平台的顶部导航栏功能,并提供具体的代码示例。一、为什么要固定定位顶部导航栏?固定定位可以使顶部导航栏始终保持在屏幕的顶部,无论用户向下滚
