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;来将这个元素向左移动它的宽度的一般,从而使这个元素居中。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La barre de navigation de l'interface Douyin est située en haut et constitue un canal important permettant aux utilisateurs d'accéder rapidement aux différentes fonctions et contenus. À mesure que Douyin continue de se mettre à jour, les utilisateurs souhaiteront peut-être pouvoir personnaliser et ajuster la barre de navigation en fonction de leurs préférences et besoins personnels. 1. Comment ajuster la barre de navigation en haut de Douyin ? Habituellement, la barre de navigation supérieure de Douyin affiche certaines chaînes populaires, permettant aux utilisateurs de parcourir et d'afficher rapidement le contenu qui les intéresse. Si vous souhaitez ajuster les paramètres de votre chaîne principale, suivez simplement ces étapes : Ouvrez l'application TikTok et connectez-vous à votre compte. Recherchez la barre de navigation au-dessus de l'interface principale, généralement au milieu ou en haut de l'écran. Cliquez sur le symbole « + » ou un bouton similaire au-dessus de la barre de navigation pour accéder à l'interface d'édition de chaîne. Dans l'interface d'édition des chaînes, vous pouvez voir la liste par défaut des chaînes populaires. Tu peux passer

Les étapes pour implémenter une barre de navigation dans les menus avec effet d'ombre en utilisant du CSS pur nécessitent des exemples de code spécifiques. Dans la conception Web, la barre de navigation dans les menus est un élément très courant. En ajoutant un effet d'ombre à la barre de navigation du menu, vous pouvez non seulement augmenter son esthétique, mais également améliorer l'expérience utilisateur. Dans cet article, nous utiliserons du CSS pur pour implémenter une barre de navigation de menu avec un effet d'ombre et fournirons des exemples de code spécifiques pour référence. Les étapes d'implémentation sont les suivantes : Créer une structure HTML Tout d'abord, nous devons créer une structure HTML de base pour accueillir la barre de navigation des menus. par

Comment utiliser PHP pour développer une barre de navigation simple et une fonction de collection de sites Web. La barre de navigation et la fonction de collection de sites Web sont l'une des fonctions courantes et pratiques du développement Web. Cet article expliquera comment utiliser le langage PHP pour développer une barre de navigation simple et une fonction de collecte d'URL, et fournira des exemples de code spécifiques. Créer une interface de barre de navigation Tout d'abord, nous devons créer une interface de barre de navigation. La barre de navigation contient généralement des liens permettant une navigation rapide vers d'autres pages. Nous pouvons utiliser HTML et CSS pour concevoir et organiser ces liens. Ce qui suit est une interface de barre de navigation simple

Dans le forum Discuz, la barre de navigation est l'une des parties avec lesquelles les utilisateurs entrent souvent en contact lorsqu'ils visitent le site Web. Par conséquent, la personnalisation de la barre de navigation peut ajouter un style unique et personnalisé au forum et améliorer l'expérience utilisateur. Ensuite, nous présenterons comment personnaliser la barre de navigation dans le forum Discuz et fournirons des exemples de code spécifiques. Tout d'abord, nous devons nous connecter au système de gestion backend de Discuz et accéder à la page « Interface » -> « Paramètres de navigation ». Sur cette page, nous pouvons effectuer divers réglages et personnalisations sur la barre de navigation. Voilà quelque

Étapes pour implémenter l'effet de menu à onglets déroulants d'une barre de navigation réactive utilisant du CSS pur La barre de navigation est l'un des éléments courants dans les pages Web, et le menu à onglets déroulants est un effet souvent utilisé dans la barre de navigation, qui. peut fournir plus d’options de navigation. Cet article explique comment utiliser du CSS pur pour implémenter un effet de menu à onglets déroulants dans la barre de navigation réactive. Étape 1 : Créer une structure HTML de base. Nous devons d'abord créer une structure HTML de base pour la démonstration et ajouter quelques styles à la barre de navigation. Vous trouverez ci-dessous une structure HTML simple

Étapes pour implémenter l'effet flottant de la barre de navigation de menu en utilisant du CSS pur Avec l'avancement continu de la conception Web, les demandes des utilisateurs en matière de sites Web sont de plus en plus élevées. Afin d’offrir une meilleure expérience utilisateur, l’effet suspension a été largement utilisé dans la conception de sites Web. Cet article expliquera comment utiliser du CSS pur pour obtenir l'effet flottant de la barre de navigation des menus afin d'améliorer la convivialité et l'esthétique du site Web. Créer la structure de base du menu Tout d'abord, nous devons créer la structure de base du menu dans le document HTML. Voici un exemple simple : <navclass=&q

Comment utiliser JavaScript pour obtenir l'effet dégradé de couleur d'arrière-plan de la barre de navigation fixe en bas de la page Web ? Dans la conception Web moderne, les barres de navigation fixes sont devenues une méthode de mise en page courante. Si vous souhaitez ajouter un effet dégradé de couleur d'arrière-plan à la barre de navigation fixe en bas de la page Web, JavaScript est un choix très approprié. Cet article vous expliquera comment utiliser JavaScript pour obtenir cet effet et fournira des exemples de code spécifiques. Étape 1 : Structure HTML Nous devons d’abord créer le HTML

Vue est un framework JavaScript très populaire qui peut être utilisé pour créer des applications Web dynamiques. Dans Vue, vous pouvez facilement réaliser l'effet dynamique de la barre de navigation et offrir aux utilisateurs une meilleure expérience d'interaction avec l'interface. Voici quelques étapes de base pour implémenter la dynamique de la barre de navigation à l'aide de Vue. Pour créer une instance Vue, vous devez d'abord introduire la bibliothèque Vue dans HTML, puis créer une instance Vue. Vous pouvez utiliser le code suivant pour créer une instance Vue : var
