js实现年份轮播选择效果的示例

发布时间:2021-01-14 10:00:40 作者:小新
来源:亿速云 阅读:141

这篇文章主要介绍了js实现年份轮播选择效果的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。


前言

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

js实现年份轮播选择效果的示例


一、思路是什么?

二、全部代码

1. html

代码如下:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="index.css" type="text/css"/>
    <script type="text/javascript" src="echarts.min.js"></script>
    <script type="text/javascript" src="index.js"></script></head><body><p class="container">

    <p id="left" class="arrow_left" onclick="clickBefore()" style="cursor:default" unselectable="on" onselectstart="return false;">
        <span>&lt;</span>
    </p>
    <p id="wrap" 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>
    </p>
    <p id="right" class="arrow_right arrow_active" onclick="clickNext()" style="cursor:default" unselectable="on" onselectstart="return false;">
        <span>&gt;</span>
    </p></p><p class="content" id="content"></p></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(p) {
    if (firstIndex + 5 < yearArr.length) {
        firstIndex = firstIndex + 1;
        initList(firstIndex)
    }
    arrowActive();}/*
* 上一页
 */function clickBefore(p) {
    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实现年份轮播选择效果的示例”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. js实现轮播图效果的方法
  2. JS怎么实现轮播图效果

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js

上一篇:css里图片和文字怎么实现等高

下一篇:Javascript中async/await是怎样工作的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》