JS 实现导航栏悬停效果(续2)_javascript技巧
【JS-实现导航栏悬停】
【JS-实现导航栏悬停(续)】
用Jquery重新写完这个页面之后,发现原来的方法还有是有几个问题:
1.首先Js代码冗余,导航条上的Tab是用js实现跳转而不是超链接;
2.还有导航条本身用fixed定位,但没有被设置为水平居中,而是在JS中更改left值使其居中。
问题2就导致了,当浏览器窗口尺寸发生变化的时候,浏览器中的div的位置都发生了变化,也就导致了没法通过页面中的div动态的给已fixed定位的导航条来定位。
最终的代码更改如下:
test.html
test.js
//记录导航条原来在页面上的位置
var naviga_offsetTop = 0;
//使导航条,悬停在顶部
function naviga_stay_top(){
//获取滚动距离
var scrollTop = $(document).scrollTop();
//如果向下滚动的距离大于原来导航栏离顶部的距离
//直接将导航栏固定到可视区顶部
if( scrollTop > naviga_offsetTop ){
$("#nav").css({"top": "0px"});
} else {
//如果向下滚动的距离小原来导航栏离顶部的距离,则重新计算导航栏的位置
$("#nav").css({"top": naviga_offsetTop - scrollTop + "px"});
}
}
function onload_function(){
//记录初始状态导航栏的高度
naviga_offsetTop = $("#nav").attr("offsetTop");
//绑定滚动和鼠标事件
$(window).bind("scroll", naviga_stay_top);
$(window).bind("mousewheel",naviga_stay_top);
$(document).bind("scroll", naviga_stay_top);
$(document).bind("mousewheel",naviga_stay_top);
}
$(document).ready( onload_function );
test.css:注意navigation类的样式
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: 0 auto;
top: 400px;
left:50%;
position: fixed;
margin-left:-400px;
}
div.tab{
width: 195px;
height: 40px;
background: blue;
float: left;
margin-left: 5px;
}
总结:
出现这个问题的原因还是CSS的布局定位不熟悉。
在这里没法通过:margin 0 auto;来设置导航条div水平居中,因为fixed定位的元素没法通过这种方式来定位。
通过margin 0 auto;来定位的元素不能为fixed定位,并且其父元素必须要有固定的宽度。
那么怎么使fixed定位的元素水平居中呢?
通过:left: 50%,将该元素的最左边与父元素宽的中点对其,然后通过marg-left: [该元素宽度的1/2]px;来将这个元素向左移动它的宽度的一般,从而使这个元素居中。

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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

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

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

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

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

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

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

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

Vue是一款非常流行的JavaScript框架,可以用于构建动态Web应用程序。在Vue中,可以很方便地实现导航栏动态效果,为用户提供更好的界面交互体验。下面是一些基本步骤,用于使用Vue实现导航栏动态效果。创建Vue实例首先,需要在HTML中引入Vue库,然后创建一个Vue实例。可以使用如下代码创建Vue实例:var
