Javascript 滚动上的粘性导航,从中心延伸导航宽度
我在滚动条上有一个粘性导航条,当导航条“粘性”时,我想做两件事:Javascript 滚动上的粘性导航,从中心延伸导航宽度,javascript,html,css,Javascript,Html,Css,我在滚动条上有一个粘性导航条,当导航条“粘性”时,我想做两件事: 我想把导航宽度从中心扩大到100vw(或100%),但我不知道怎么做 我试过这个: 我还希望导航定位在顶部0 所以我尝试了一些东西,这是我得到的,但正如你所看到的,导航宽度没有从中心扩展,当导航定位到顶部0时,有一个我并不想要的动画:如果你在.header和heightHeader这样的转换选项中进行更改 -webkit-transition: width 0.8s ease; -moz-transition: width
- 我想把导航宽度从中心扩大到100vw(或100%),但我不知道怎么做 我试过这个:
- 我还希望导航定位在顶部0
所以我尝试了一些东西,这是我得到的,但正如你所看到的,导航宽度没有从中心扩展,当导航定位到顶部0时,有一个我并不想要的动画:如果你在
.header
和heightHeader
这样的转换选项中进行更改
-webkit-transition: width 0.8s ease;
-moz-transition: width 0.8s ease;
-ms-transition: width 0.8s ease;
transition: width 0.8s ease;
您将只设置
width
属性的动画,容器将从中心展开,并且您将避免设置顶部的动画。平滑度的问题从菜单中的设置左边距:auto
开始。根据我的经验,如果您更改.header
和heightHeader
这样的转换选项,则无法设置auto
属性的动画。
-webkit-transition: width 0.8s ease;
-moz-transition: width 0.8s ease;
-ms-transition: width 0.8s ease;
transition: width 0.8s ease;
您将只设置width
属性的动画,容器将从中心展开,并且您将避免设置顶部的动画。平滑度的问题从菜单中的设置左边距:auto
开始。根据我的经验,您无法设置auto
属性的动画。尽管您的代码非常混乱。请尝试为您的2个css选择器使用以下代码:
header{
position:absolute;
top:54px;
left:0;
right:0;
margin:auto;
transition: .3s;
z-index:500;
transform-origin: center;
transform: scaleX(0.95);
}
.heightHeader{
position:fixed;
top:0;
width:100vw;
-webkit-transition: all 0.8s ease;
-moz-transition: all 0.8s ease;
-ms-transition: all 0.8s ease;
transition: all 0.8s ease;
transform: scale(1);
}
虽然你的代码很乱。请尝试为您的2个css选择器使用以下代码:
header{
position:absolute;
top:54px;
left:0;
right:0;
margin:auto;
transition: .3s;
z-index:500;
transform-origin: center;
transform: scaleX(0.95);
}
.heightHeader{
position:fixed;
top:0;
width:100vw;
-webkit-transition: all 0.8s ease;
-moz-transition: all 0.8s ease;
-ms-transition: all 0.8s ease;
transition: all 0.8s ease;
transform: scale(1);
}
动画被转换为过渡
,这在本代码中得到了解决。我已经删除了所有动画,因为你说你不想要它。
tranform origin
将从中心扩展宽度
无需更改导航类
,因为您已经在更改标题
查看整页模式下的结果
//滚动上的粘性导航
const header=document.querySelector('header');
const nav=document.querySelector(“#main”);
const topOfNav=header.offsetTop;
函数stickyNav(){
如果(window.scrollY>=topOfNav){
//导航栏高度
header.classList.add('heightHeader');
}否则{
header.classList.remove('heightHeader');
}
}
window.addEventListener('scroll',stickyNav)代码>
*{
保证金:0;
填充:0;
框大小:边框框;
}
a{
文字装饰:无;
}
李{
列表样式:无;
}
标题{
位置:绝对位置;
顶部:54px;
左:0;
右:0;
保证金:自动;
宽度:95vw;
变换原点:中心;
z指数:500;
}
.高度头{
位置:固定;
排名:0;
宽度:100vw;
变换原点:中心;
}
主导航{
高度:120px;
盒影:0px 15px 30px 0000001A;
边界半径:15px;
背景色:#fff;
显示器:flex;
对齐项目:居中;
位置:相对位置;
}
.固定导航.导航菜单{
左边距:自动;
}
导航主标志{
左边距:50像素;
}
.导航菜单{
左边距:自动;
显示器:flex;
}
.导航菜单.主菜单项{
位置:相对位置;
}
.主菜单项:非(:最后一个子项){
边际:0.44px;
}
.主菜单项:最后一个子菜单项{
左边距:44px;
右边距:342px;
}
.主菜单项a{
字体重量:较轻;
字体大小:14px;
字母间距:2.8px;
}
分区{
高度:400px;
宽度:300px;
背景:天蓝色;
}
Lorem ipsum,dolor sit amet Concertetur Adipising Elite。最重要的是,我们必须保持清醒,在自由的世界里,我们需要一个伟大的解决方案!真正的颞肌群。身份证件
如果你是一个不流动的人!圣乌拉姆共和国的准动物创造了时间上的大手艺,自由的权利,阻碍了新人类的智慧?
前FUGIA expedita hic id.Quibusdam assumenda natus,totam cum eos veniam esse!工作坊,工作坊,工作坊,工作坊,工作坊!
艾斯,莫迪?事实上,所有人的智慧水平都应该与发明者的自然属性相同,但不包括其他人?德莱尼蒂食腐动物Repudiandae deleniti voluptatem dicta。
Accusamus在autem eos,molestiae beatae mollitia处阻碍了它。面部劳动大部。一个铜酸盐的负号,最大的错误是什么?
奥迪奥·乌兰(Odio ullam Perpiciatis qui recussandae officiis voluptatibus nisi dolore and sequi maxime)、iusto nostrum assumenda、驱虫剂是一种溶解性药物,可将其分解为两种成分。Laborum,laboriosam harum。帕里图尔,阿斯佩纳图尔!
小动物共同照明。Qui,实习建筑设计师,在iusto earum nulla porro officia的资格认证?占有欲,暂时的最大自由,劳动的最大限度,最小的自我保护?
作为官方的发明者,我不知道为什么我会阻止我的行为,因为我明白为什么我会被指控,为什么我会被判无罪?奈斯库特,福吉亚特。
排斥性耳炎疫苗中的小白鼠隐孢子虫是一种常见的寄生虫,通常是一种寄生虫。非beatae sequi发明家nihil adipisci iure的圣石锻造房!
普罗维登特律师事务所(Provident ab除外)别名为“高贵的时间人”(aperiam tempora Dignessimos nostrum),简称“最大的债务人”(maxime debitis atque)。自由之神和圣多洛里巴斯·德莱尼蒂·贝塔·马克西姆·多洛雷·劳里奥