现在的效果是鼠标悬浮文字切换背景图,如何改成.line自动往下滚动,滚动到下一个文字就切换当前文字的背景图,鼠标悬浮就停止滚动。
* { margin: 0; padding: 0; box-sizing: border-box; } ul { list-style: none; } a { color: #000; text-decoration: none; } .box { margin: 0 auto; width: 1580px; height: 600px; position: relative; top: 60px; overflow: hidden; } .nav { position: absolute; } .nav>ul { padding: 45px 0 0 120px; height: 600px; position: relative; z-index: 10; } .nav::before { content: ""; width: 1px; height: 600px; background-color: #ddd; position: absolute; left: 121px; top: 0px; z-index: 10; } .nav_li { margin-bottom: 55px; padding-left: 25px; cursor: pointer; line-height: 26px; transition: all 0.3s ease-in-out; position: relative; color: #888; } .nav_li>a { color: inherit; } .active { font-size: 20px; color: #007377; } .nav_li::before { content: ''; width: 3px; height: 3px; position: absolute; border-radius: 50%; left: 0; background-color: #aaa; top: 50%; } .line { width: 3px; position: absolute; background-color: #007377; left: 120px; z-index: 15; height: 26px; transition: all .3s; } .list { width: 100%; height: 100%; background-color: #ebebeb; position: relative; } .item { width: 100%; height: 100%; position: absolute; transition: all .2s ease-in-out; opacity: 0; } .img { width: 100%; height: 100%; background-repeat: no-repeat; background-position: right 0; position: absolute; } .show { opacity: 1; visibility: visible; }
<div class="box"> <div class="nav"> <ul> <li class="nav_li active"> <a href="javascript:;">1</a> </li> <li class="nav_li "> <a href="javascript:;">2</a> </li> <li class="nav_li "> <a href="javascript:;">3</a> </li> <li class="nav_li "> <a href="javascript:;">4</a> </li> <li class="nav_li"> <a href="javascript:;">5</a> </li> <li class="nav_li"> <a href="javascript:;">6</a> </li> </ul> </div> <div class="line" style="top: 45px;"></div> <ul class="list"> <li class="item show"> <div class="img" style="background-image: url(https://3.swiper.com.cn/demo/timeline/images/01.jpg)"> </div> </li> <li class="item"> <div class="img " style='background-image: url(https://3.swiper.com.cn/demo/timeline/images/02.jpg)'> </div> </li> <li class="item"> <div class="img " style="background-image: url(https://3.swiper.com.cn/demo/timeline/images/03.jpg)"> </div> </li> <li class="item"> <div class="img " style="background-image: url(https://3.swiper.com.cn/demo/timeline/images/04.jpg)"> </div> </li> <li class="item"> <div class="img" style="background-image: url(https://3.swiper.com.cn/demo/timeline/images/05.jpg)"> </div> </li> <li class="item"> <div class="img" style="background-image: url(https://3.swiper.com.cn/demo/timeline/images/06.jpg)"> </div> </li> </ul> </div>
var liList = document.querySelectorAll('.nav_li') const contentList = document.querySelectorAll('.item') const line = document.querySelector('.line') liList.forEach(function (li, index) { // 获取li元素在页面上的位置 const top = li.getBoundingClientRect().top li.addEventListener('mouseover', function () { liList.forEach(function (li) { li.classList.remove('active') }) li.classList.add('active') // 控制左边小条块的位置 line.style.top = top - 60 + 'px'; contentList.forEach(function (content) { content.classList.remove('show') }) contentList[index].classList.add('show') }) })
结构不变, JS 代码:
var liList = document.querySelectorAll('.nav_li') const contentList = document.querySelectorAll('.item') const line = document.querySelector('.line') let max = liList.length - 1 let count = 0 const timeID = setInterval(() => { if (count == max) { count = 0 } else { count++ } liList.forEach(function (li) { li.classList.remove('active') }) const top = liList[count].getBoundingClientRect().top liList[count].classList.add('active') // 控制左边小条块的位置 line.style.top = top - 60 + 'px'; contentList.forEach(function (content) { content.classList.remove('show') }) contentList[count].classList.add('show') }, 1000) liList.forEach(function (li, index) { // 获取li元素在页面上的位置 const top = li.getBoundingClientRect().top li.addEventListener('mouseover', function () { clearInterval(timeID) liList.forEach(function (li) { li.classList.remove('active') }) li.classList.add('active') // 控制左边小条块的位置 line.style.top = top - 60 + 'px'; contentList.forEach(function (content) { content.classList.remove('show') }) contentList[index].classList.add('show') }) })
本文向大家介绍JavaScript实现背景自动切换小案例,包括了JavaScript实现背景自动切换小案例的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现背景自动切换的具体代码,供大家参考,具体内容如下 功能: 窗口打开背景图自动跳转切换 所有代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我想使用TextFlow显示一些格式化的文本。之前,我使用了一个简单的标签(wrapText设置为true)来显示该文本(未格式化),但想使用提供我想使用TextFlow显示的文本列表的库。 我的问题是要显示的文本比可用区域大。标签在空间不足时会切断文本。这很有效。不幸的是,TextFlow没有。当文本过长时,它会溢出TextFlow所在的区域。相邻的文本流然后相互重叠。如何模仿标签的行为? 可以
问题内容: 我当前的项目有一个编码约定,即实例变量永远不会用this引用。前缀,并且该参数永远不应隐藏实例变量。 这将导致设置器看起来像: 不幸的是,默认情况下,eclipse不会为我生成该信息。我发现在代码样式中,可以通过在参数前缀列表中添加a来接近它,但是我只希望将其应用于set方法,并且我也想在其中添加final标记。 有没有办法使用模板来实现这一目标?其他配置? 问题答案: 我认为,当前仅
我正在尝试应用自定义css到材料UI自动完成组件。具体地说,我想改变输入字段的字体大小。我现在有的是: 我相信我的TextField的样式是正确的,但是它的CSS被自动完成CSS覆盖了。感谢任何帮助。提前道谢。
Vue3如何实现像这个网站的图片自动切换效果 https://fortnite.gg/shop 这是我写的template 查看了该网站的效果是设置了两个class="animation"的盒子来做链接切换并且调整高度,但是我的每个item的图片数量不确定,有的为1,有的为2,3个,实在想不出来应该怎么实现了,可以请教大佬们一下思路吗
求一个插件或者json setting能够在打开项目的时候隐藏每个js文件最上面的一大堆imports. 主要是前端。 后端的引用还好,主要是前端引用一堆组件库的东西,太长了,有点烦人。 感谢了~