千家信息网

JavaScript如何实现年份轮播选择效果

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要讲解了"JavaScript如何实现年份轮播选择效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript如何实现年份轮播选择
千家信息网最后更新 2025年01月16日JavaScript如何实现年份轮播选择效果

这篇文章主要讲解了"JavaScript如何实现年份轮播选择效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript如何实现年份轮播选择效果"吧!

前言

用 js 实现一个年份轮换选择效果。废话不多说,看图:

一、思路是什么?

  • 布局: 左右箭头使用实体字符 < 和 > 年份5个 span。使用用 flex 布局横向排列。

  • js逻辑:(注:年份数据为 number 数组)a> . 默认展示年份数据前5个。b>. firstIndex 记录要显示的5个年份的起始索引。点击右侧箭头 +1,直到 firstIndex+5 刚好等于年份数组长度,不在递增。点击左侧箭头 -1,直到 firstIndex 为 0,不在递减。初始值为 0。c>.selectedIndex 记录当前点击选中的年份索引。默认显示第一个即 2021。初始值 0。d>.firstIndex 值发生变化,获取 firstIndex,firstIndex+1,firstIndex+2…firstIndex+4 对应的年份,渲染到页面。并且这5个索引中某一个和 selectedIndex 相等,说明选中的年份,刚好在当前页面显示的年份当中。所以,与之相等的 index 对应的 span 添加选中样式,其他4个 span 移除选中样式。

  • css:左右箭头逻辑,默认全部添加可点击样式:firstIndex=0,移除左可点击样式,firstIndex+5=年份数组长度,移除右可点击样式。

二、全部代码

1. html

代码如下:





Title








<


1
2
3
4
5









2.js

代码如下:

_window.onload = function () {
/*首次渲染列表*/
initList(firstIndex);
};

let yearArr = [2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021];
yearArr.reverse();

/*起始索引*/
let firstIndex = 0;
/*选中索引,默认选中第一个*/
let selectedIndex = 0;


/**
* 初始化列表
*/
function initList(firstIndex) {

/*渲染页面span列表*/
let spanList = document.getElementById('wrap').getElementsByTagName('span');
for (let i = 0; i < spanList.length; i++) {
let index = firstIndex + i;
let span = spanList[i];
span.innerText = yearArr[index];

/*选中样式添加和移除*/
if (index === selectedIndex) {
span.classList.add('active');
} else {
span.classList.remove('active')
}
}
/*页面内容显示值*/
document.getElementById('content').innerText = '当前选中年份:' + yearArr[selectedIndex];
}

/**
* 下一页
*/
function clickNext(div) {
if (firstIndex + 5 < yearArr.length) {
firstIndex = firstIndex + 1;
initList(firstIndex)
}
arrowActive();
}

/*
* 上一页
*/
function clickBefore(div) {
if (firstIndex > 0) {
firstIndex = firstIndex - 1;
initList(firstIndex)
}
arrowActive();
}

/**
* 选中
*/
function selected(span) {
let value = span.innerText;
let index = yearArr.findIndex((el) => {
return el + "" === value;
})
selectedIndex = index !== -1 ? index : 0;
initList(firstIndex);
}

/**
* 左右箭头激活
* firstIndex = 0: 右激活 左不
* firstIndex = length-5:左激活 右不
* 其他:全激活
*/
function arrowActive() {
let left = document.getElementById('left')
let right = document.getElementById('right')
left.classList.add('arrow_active');
right.classList.add('arrow_active');
if (firstIndex === 0) {
left.classList.remove('arrow_active');
} else if (firstIndex === yearArr.length - 5) {
right.classList.remove('arrow_active');
}
}

2.css

代码如下:

body{
margin-top: 80px;
}
.container {

display: flex;
justify-content: center;
align-items: center;
margin: 10px;
}

.wrap {
height: 40px;
z-index: 1;
color: black;
display: flex;
flex: 1;
background: rgba(155,226,219,0.5);
border-radius: 20px;
margin-left: 20px;
margin-right: 20px;
}

.wrap span {
flex: 1;
text-align: center;
height: 40px;
line-height: 40px;
border-radius: 20px;

}

.active{
background: #1abc9c;
color:#fff;
}



.arrow_left {
left: 10px;
color: green;
padding: 0px 14px;
border-radius: 50%;
font-size: 30px;
z-index: 2;
}


.arrow_right {
right: 10px;
color: green;
padding: 0px 14px;
border-radius: 50%;
font-size: 30px;
z-index: 2;
}
.arrow_active{
color: blue;
}

.content{
margin-left: 30px;
}

感谢各位的阅读,以上就是"JavaScript如何实现年份轮播选择效果"的内容了,经过本文的学习后,相信大家对JavaScript如何实现年份轮播选择效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

年份 样式 效果 选择 箭头 索引 代码 激活 页面 内容 数组 学习 布局 思路 数据 逻辑 长度 起始 前言 右侧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 融创互联网科技是代理商吗 海康威视内部研究院数据库 网络技术工作怎么样 哈尔滨网络技术人员招聘 数据库是系统的核心吗 北京睦和网络技术有限公司电话 服务器地址设置不支持 碧蓝航线安卓服务器 云栖大会阿里云服务器 重庆南岸网络安全产业园 井陉租房软件开发 为我国网络安全做出最大贡献的人 广东云南众福互联网科技有限公司 信息网络安全 数据完整性 中国互联网有什么科技含量 网络安全手抄报 网警支队和网络安全保卫支队 粤智新消防服务器怎样切换 服务器主板电池电压低会怎么样 网络安全标语大学 中科曙光 网络安全 excel另一列有的数据库 用户操作权限数据库怎么实现 信息流用什么软件开发 为什么英雄联盟不能进入服务器 软件开发算是研发吗 爬虫 爬取简单数据库 数据库删除多列 威海市委网络安全办 成都商途网络技术有限公司
0