电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

使用js原生實現年份輪播選擇效果實例

瀏覽:79日期:2024-04-08 09:46:58
前言

用js實現一個年份輪換選擇效果。廢話不多說,看圖:

使用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

代碼如下:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title> <link rel='stylesheet' href='http://www.hdgsjgj.cn/bcjs/index.css' rel='external nofollow' type='text/css'/> <script type='text/javascript' src='http://www.hdgsjgj.cn/bcjs/echarts.min.js'></script> <script type='text/javascript' src='http://www.hdgsjgj.cn/bcjs/index.js'></script></head><body><div class='container'> <div onclick='clickBefore()' unselectable='on' onselectstart='return false;'> <span>&lt;</span> </div> <div class='wrap'> <span onclick='selected(this)'>1</span> <span onclick='selected(this)'>2</span> <span onclick='selected(this)'>3</span> <span onclick='selected(this)'>4</span> <span onclick='selected(this)'>5</span> </div> <div onclick='clickNext()' unselectable='on' onselectstart='return false;'> <span>&gt;</span> </div></div><div id='content'></div></body></html>

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;}總結

每天記錄一點,從小小菜鳥變小菜鳥!!!

到此這篇關于使用js原生實現年份輪播選擇效果的文章就介紹到這了,更多相關js原生實現年份輪播選擇內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 东莞海恒试验仪器设备有限公司| 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 中国在职研究生招生信息网| 苹果售后维修点查询,苹果iPhone授权售后维修服务中心 – 修果网 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 技德应用| 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 | 广东教师资格网-广东教师资格证考试网 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | DNA亲子鉴定_DNA基因检测中心官方预约平台-严选好基因网 | 酒万铺-酒水招商-酒水代理 | 山东信蓝建设有限公司官网| 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 许昌奥仕达自动化设备有限公司| 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 立式_复合式_壁挂式智能化电伴热洗眼器-上海达傲洗眼器生产厂家 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 |