- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多行的页面,每行包含一个背景图像(封面),上面有一些内容,如幻灯片。
我还有一个导航菜单,显示页面上的幻灯片数量,如果您单击菜单项,该行会滑入 View 。
问题是,当我手动滚动并移动到特定行时,菜单保持不变,显示它仍在第一行/幻灯片上。
我需要能够在滚动时动态更改导航菜单的当前项,目前它在您单击菜单项而不是滚动时有效。
每当我滚动到行/幻灯片时,只需切换类 nav__item--current
。
演示 https://jsfiddle.net/gz2r7zLa/
HTML
<section id="slideshow">
<nav class="nav nav--beca">
<a href="#slide1" class="nav__item nav__item--current"><span class="nav__item-title"><span>01/06</span></span></a>
<a href="#slide2" class="nav__item"><span class="nav__item-title"><span>02/06</span></span></a>
<a href="#slide3" class="nav__item"><span class="nav__item-title"><span>03/06</span></span></a>
<a href="#slide4" class="nav__item"><span class="nav__item-title"><span>04/06</span></span></a>
<a href="#slide5" class="nav__item"><span class="nav__item-title"><span>05/06</span></span></a>
<a href="#slide6" class="nav__item"><span class="nav__item-title"><span>06/06</span></span></a>
</nav>
<div class="container-fluid">
<div class="row" id="slide1">
<div class="col-md-12 slide">
<div class="slide-background" style="background: url('assets/img/slides/1.png') center center / cover;"></div>
</div>
</div>
<div class="row" id="slide2">
<div class="col-md-12 slide">
<div class="slide-background" style="background: url('assets/img/slides/2.jpg') center center / cover;">
<div class="slide-content">
<h2>UNDP SAVE THE PARSLEY</h2>
<p class="hidden-xs">Save the Parsley is a 3-minute short animation video that was created for the UNDP about Lebanon 2050 and Climate Change. Originally requested as an infographic, The Council re-imagined the brief. Instead of speaking directly about climate change, the video tackles the danger of losing what the Lebanese value most: Taboulleh.</p>
<a href="#" class="btn btn-default btn-lg slide-button">Explore</a>
</div>
</div>
</div>
</div>
<div class="row" id="slide3">
<div class="col-md-12 slide">
<div class="slide-background" style="background: url('assets/img/slides/3.jpg') center center / cover;">
<div class="slide-content">
<h2>UNDP SAVE THE PARSLEY</h2>
<p class="hidden-xs">Save the Parsley is a 3-minute short animation video that was created for the UNDP about Lebanon 2050 and Climate Change. Originally requested as an infographic, The Council re-imagined the brief. Instead of speaking directly about climate change, the video tackles the danger of losing what the Lebanese value most: Taboulleh.</p>
<a href="#" class="btn btn-default btn-lg slide-button">Explore</a>
</div>
</div>
</div>
</div>
<div class="row" id="slide4">
<div class="col-md-12 slide">
<div class="slide-background" style="background: url('assets/img/slides/4.jpg') center center / cover;">
<div class="slide-content">
<h2>UNDP SAVE THE PARSLEY</h2>
<p class="hidden-xs">Save the Parsley is a 3-minute short animation video that was created for the UNDP about Lebanon 2050 and Climate Change. Originally requested as an infographic, The Council re-imagined the brief. Instead of speaking directly about climate change, the video tackles the danger of losing what the Lebanese value most: Taboulleh.</p>
<a href="#" class="btn btn-default btn-lg slide-button">Explore</a>
</div>
</div>
</div>
</div>
<div class="row" id="slide5">
<div class="col-md-12 slide">
<div class="slide-background" style="background: url('assets/img/slides/5.jpg') center center / cover;">
<div class="slide-content">
<h2>UNDP SAVE THE PARSLEY</h2>
<p class="hidden-xs">Save the Parsley is a 3-minute short animation video that was created for the UNDP about Lebanon 2050 and Climate Change. Originally requested as an infographic, The Council re-imagined the brief. Instead of speaking directly about climate change, the video tackles the danger of losing what the Lebanese value most: Taboulleh.</p>
<a href="#" class="btn btn-default btn-lg slide-button">Explore</a>
</div>
</div>
</div>
</div>
<div class="row" id="slide6">
<div class="col-md-12 slide">
<div class="slide-background" style="background: linear-gradient(rgba(10,24,12,0.8), rgba(3,2,1,0.8)), url('assets/img/slides/6.jpg') center center / cover;">
<div class="slide-content">
<h2>UNDP SAVE THE PARSLEY</h2>
<p class="hidden-xs">Save the Parsley is a 3-minute short animation video that was created for the UNDP about Lebanon 2050 and Climate Change. Originally requested as an infographic, The Council re-imagined the brief. Instead of speaking directly about climate change, the video tackles the danger of losing what the Lebanese value most: Taboulleh.</p>
<a href="#" class="btn btn-default btn-lg slide-button">Explore</a>
</div>
</div>
</div>
</div>
</div>
</section>
CSS
.nav {
position: relative;
}
.nav__item {
line-height: 1;
position: relative;
display: block;
margin: 0;
padding: 0;
letter-spacing: 0;
color: currentColor;
border: 0;
background: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.nav__item:focus {
outline: none;
}
.nav--beca {
position: fixed;
top: 50%;
right: 0;
margin: 0;
-webkit-transform: translate3d(0,-50%,0);
transform: translate3d(0,-50%,0);
z-index:10;
}
.nav--beca a {
color: currentColor;
text-decoration: none;
}
.nav--beca .nav__item {
width: 5.5em;
height: 2.5em;
}
.nav--beca .nav__item::before {
content: '';
position: absolute;
top: 50%;
left: 0;
width: 50%;
height: 2px;
margin: -1px 0 0 0;
opacity: 0.5;
background: #000;
-webkit-transform: scale3d(0.5,1,1);
transform: scale3d(0.5,1,1);
-webkit-transform-origin: 100% 0%;
transform-origin: 100% 0%;
-webkit-transition: -webkit-transform 0.5s, opacity 0.5s;
transition: transform 0.5s, opacity 0.5s;
-webkit-transition-timing-function: cubic-bezier(0.2,1,0.3,1);
transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}
.nav--beca .nav__item:not(.nav__item--current):focus::before,
.nav--beca .nav__item:not(.nav__item--current):hover::before {
opacity: 1;
-webkit-transform: scale3d(0.75,1,1);
transform: scale3d(0.75,1,1);
}
.nav--beca .nav__item--current::before {
opacity: 1;
-webkit-transform: scale3d(2,1,1);
transform: scale3d(2,1,1);
}
.nav--beca .nav__item-title {
font-size: 1em;
font-weight: bold;
display: block;
overflow: hidden;
margin: -1.15em 0 0 1.6em;
text-align: left;
white-space: nowrap;
pointer-events: none;
margin-left: -40px;
}
.nav--beca .nav__item-title span {
display: block;
-webkit-transform: translate3d(0,100%,0);
transform: translate3d(0,100%,0);
-webkit-transition: -webkit-transform 0.5s;
transition: transform 0.5s;
-webkit-transition-timing-function: cubic-bezier(0.2,1,0.3,1);
transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}
.nav--beca .nav__item--current .nav__item-title span {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
Javascript
(function(window) {
'use strict';
function init() {
[].slice.call(document.querySelectorAll('.nav')).forEach(function(nav) {
var navItems = [].slice.call(nav.querySelectorAll('.nav__item')),
itemsTotal = navItems.length,
setCurrent = function(item) {
// return if already current
if( item.classList.contains('nav__item--current') ) {
return false;
}
// remove current
var currentItem = nav.querySelector('.nav__item--current');
currentItem.classList.remove('nav__item--current');
// set current
item.classList.add('nav__item--current');
};
navItems.forEach(function(item) {
item.addEventListener('click', function() { setCurrent(item); });
});
});
[].slice.call(document.querySelectorAll('.link-copy')).forEach(function(link) {
link.setAttribute('data-clipboard-text', location.protocol + '//' + location.host + location.pathname + '#' + link.parentNode.id);
new Clipboard(link);
link.addEventListener('click', function() {
link.classList.add('link-copy--animate');
setTimeout(function() {
link.classList.remove('link-copy--animate');
}, 300);
});
});
}
init();
})(window);
最佳答案
希望我能回答您的问题,这会对您有所帮助。将以下代码添加到您的 document.ready 函数 () 中。
var id_ele;
$(".container-fluid .row").hover(function(){
id_ele = '';
id_ele = $(this).attr('id');
id_ele = '#' + id_ele;
$('.nav--beca').find("a[href*='"+id_ele + "']").addClass('nav__item--current');
}, function(){
$('.nav--beca').find("a[href*='"+id_ele + "']").removeClass('nav__item--current');
});
关于javascript - 滚动更改菜单的当前元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44632507/
SO亲爱的 friend 们: 2014 年 3 月 18 日。我正在处理一种情况,在使用 ng-repeat 时,数组内的元素(我从 Json 字符串中获取)更改了原始顺序。 需要明确的是,数组中的
有很多问题询问如何在 JavaScript 单击处理程序中更改 div 的类,例如,此处:Change Div style onclick .我理解得很好(只需更改 .className),并且它有效
我从access导入了一个数据库到mysql,但其中一个表的列名“股数”带有空格,但我尝试更改、替换甚至删除列名,但失败了。任何人都可以帮助解决这一问题 String UpdateQuary = "U
我正在做一个随机的学校元素。 目前,我有一个包含两个 CSS 的页面。一种用于正常 View ,一种用于残障人士 View 。 此页面还包括两个按钮,它们将更改使用的样式表。 function c
我需要使用 javascript 更改 HTML 元素中的文本,但我不知道该怎么做。 ¿有什么帮助吗? 我把它定义成这样: Text I want to change. 我正在尝试这样做: docum
我在它自己的文件 nav_bar.shtml 中有一个主导航栏,每个其他页面都包含该导航栏。这个菜单栏是一个 jQuery 菜单栏(ApyCom 是销售这些导航栏的公司的名称)。导航栏上的元素如何确定
我正在摆弄我的代码,并开始想知道这个变化是否来自: if(array[index] == 0) 对此: if(!array[index] != 0) 可能会影响任何代码,或者它只是做同样的事情而我不需
我一直在想办法调整控制台窗口的大小。这是我正在使用的函数的代码: #include #include #define WIDTH 70 #define HEIGHT 35 HANDLE wHnd;
我有很多情况会导致相同的消息框警报。 有没有比做几个 if 语句更简单/更好的解决方案? PRODUCTS BOX1 BOX2 BOX3
我有一个包含这些元素的 XELEMENT B Bob Petier 19310227 1 我想像这样转换前缀。 B Bob Pet
我使用 MySQL 5.6 遇到了这种情况: 此查询有效并返回预期结果: select * from some_table where a = 'b' and metadata->>"$.countr
我想知道是否有人知道可以检测 R 中日期列格式的任何中断的包或函数,即检测日期向量格式更改的位置,例如: 11/2/90 12/2/90 . . . 15/Feb/1990 16/Feb/1990 .
我希望能够在小部件显示后更改 GtkButton 的标签 char *ButtonStance == "Connect"; GtkWidget *EntryButton = gtk_button_ne
我正在使用 Altera DE2 FPGA 开发板并尝试使用 SD 卡端口和音频线路输出。我正在使用 VHDL 和 C 进行编程,但由于缺乏经验/知识,我在 C 部分遇到了困难。 目前,我可以从 SD
注意到这个链接后: http://www.newscientist.com/blogs/nstv/2010/12/best-videos-of-2010-progress-bar-illusion.h
我想知道在某些情况下,即使剧本任务已成功执行并且 ok=2,ansible 也会显示“changed=0”。使用 Rest API 和 uri 模块时会发生这种情况。我试图找到解释但没有成功。谁能告诉
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: add buttons to push notification alert 是否可以在远程通知显示的警报框中指定有
当您的 TabBarController 中有超过 5 个 View Controller 时,系统会自动为您设置一个“更多” View 。是否可以更改此 View 中导航栏的颜色以匹配我正在使用的颜
如何更改.AndroidStudioBeta文件夹的位置,默认情况下,该文件夹位于Windows中的\ .. \ User \ .AndroidStudioBeta,而不会破坏任何内容? /编辑: 找
我目前正在尝试将更具功能性的编程风格应用于涉及低级(基于 LWJGL)GUI 开发的项目。显然,在这种情况下,需要携带很多状态,这在当前版本中是可变的。我的目标是最终拥有一个完全不可变的状态,以避免状
我是一名优秀的程序员,十分优秀!