广告
返回顶部
首页 > 资讯 > 精选 >vue怎么实现周日历切换效果
  • 125
分享到

vue怎么实现周日历切换效果

2023-06-30 04:06:53 125人浏览 薄情痞子
摘要

本篇内容介绍了“Vue怎么实现周日历切换效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:代码:<!DOCTYPE 

本篇内容介绍了“Vue怎么实现周日历切换效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

效果如下:

vue怎么实现周日历切换效果

代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta Http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>周日历</title>    <!-- 引入组件样式 -->    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.CSS" ></head><body>    <div id="app">        <!-- 上面的日历 -->        <div class="calendar">            <div class="arrow">                <i class="el-icon-arrow-left" @click="arrow('left')"></i>                <i class="el-icon-arrow-right" @click="arrow('right')"></i>            </div>            <el-calendar v-model="value" :range="dateRange"></el-calendar>        </div>        <!-- 下面的日历 -->        <div class="date">            <div class="arrow0">                <i class="el-icon-arrow-left" @click="weekPre"></i>                <i class="el-icon-arrow-right" @click="weekNext"></i>            </div>            <!-- 年份 月份 -->            <div class="month">                <p>{{ currentYear }}年{{ currentMonth }}月</p>            </div>            <!-- 星期 -->            <ul class="weekdays">                <li>一</li>                <li>二</li>                <li>三</li>                <li>四</li>                <li>五</li>                <li>六</li>                <li>日</li>            </ul>            <!-- 日期 -->            <ul class="days">                <li @click="pick(day)" v-for="(day, index) in days" :key="index">                    <!--本月-->                    <span v-if="day.getMonth()+1 != currentMonth" class="other-month">{{ day.getDate() }}</span>                    <span v-else>                    <!--今天-->                        <span v-if="day.getFullYear() == new Date().getFullYear() && day.getMonth() == new Date().getMonth() && day.getDate() == new Date().getDate()" class="active">{{ day.getDate() }}</span>                        <span v-else>{{ day.getDate() }}</span>                    </span>                </li>            </ul>        </div>    </div></body><!-- 引入vue --><script src="https://unpkg.com/vue/dist/vue.js"></script><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script><script>    new Vue({    el: '#app',    data: function() {            return {                 // 上                value: "",                endDate: "",                dateRange: [],                dateNum: 0,                // 下                currentYear: "",   // 年份                currentMonth: "",  // 月份                currentDay: "",    // 日期                currentWeek: "",    // 星期                days: [],            }        },    mounted () {         },    created () {        // 上面的日历        this.dateList(this.dateNum);        console.log(this.dateRange);        // 下面的日历        this.initData();    },    methods: {        // 上面的日历         // 获取当前时间的周一        getMonday(date) {            var day = date.getDay();            var deltaDay;            if (day == 0) {                deltaDay = 6;            } else {                deltaDay = day - 1;            }            var monday = new Date(date.getTime() - deltaDay * 24 * 60 * 60 * 1000);            monday.setHours(0);            monday.setMinutes(0);            monday.setSeconds(0);            return monday; //返回选定时间的周一的0时0分0秒        },        getDateNew(time) {            console.log(time);            let times = new Date(time);            let year = times.getFullYear();            let month = times.getMonth() + 1 < 10 ? "0" + (times.getMonth() * 1 + 1) : times.getMonth() * 1 + 1;            let day = times.getDate() < 10 ? "0" + times.getDate() * 1 : times.getDate() * 1;            return year + "-" + month + "-" + day;        },        dateList(delta) {            //将时间对象转换为时间戳并加几天后转换为时间对象            var DateNews = this.getMonday(                new Date((new Date().getTime() / 1000 + 86400 * 7 * delta) * 1000)            );            let startDate = this.getDateNew(DateNews, delta);            this.endDate = this.getDateNew(                new Date((DateNews.getTime() / 1000 + 6 * 86400) * 1000)            );            this.dateRange = [startDate, this.endDate];        },        arrow(arrow) {            if (arrow == "left") {                this.dateNum--;                this.dateList(this.dateNum);            } else if (arrow == "right") {                this.dateNum++;                this.dateList(this.dateNum);            }        },         // 下面的日历         fORMatDate (year, month, day) {            const y = year            let m = month            if (m < 10) m = `0${m}`            let d = day            if (d < 10) d = `0${d}`            return `${y}-${m}-${d}`        },        initData (cur) {            let date = ''            if (cur) {                date = new Date(cur)            } else {                date = new Date()            }            this.currentDay = date.getDate()          // 今日日期 几号            this.currentYear = date.getFullYear()       // 当前年份            this.currentMonth = date.getMonth() + 1    // 当前月份            this.currentWeek = date.getDay() // 1...6,0   // 星期几            if (this.currentWeek === 0) {                this.currentWeek = 7            }            const str = this.formatDate(this.currentYear, this.currentMonth, this.currentDay) // 今日日期 年-月-日            this.days.length = 0            // 今天是周日,放在第一行第7个位置,前面6个 这里默认显示一周,如果需要显示一个月,则第二个循环为 i<= 35- this.currentWeek                        for (let i = this.currentWeek - 1; i >= 0; i -= 1) {                const d = new Date(str)                d.setDate(d.getDate() - i)                // console.log(y:" + d.getDate())                this.days.push(d)            }            for (let i = 1; i <= 7 - this.currentWeek; i += 1) {                const d = new Date(str)                d.setDate(d.getDate() + i)                this.days.push(d)            }        },        //  上个星期        weekPre () {            const d = this.days[0]    // 如果当期日期是7号或者小于7号            d.setDate(d.getDate() - 7)            this.initData(d)        },        //  下个星期        weekNext () {            const d = this.days[6]    // 如果当期日期是7号或者小于7号            d.setDate(d.getDate() + 7)            this.initData(d)        },        // 上一個月   传入当前年份和月份        pickPre (year, month) {            const d = new Date(this.formatDate(year, month, 1))            d.setDate(0)            this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1))        },        // 下一個月   传入当前年份和月份        pickNext (year, month) {            const d = new Date(this.formatDate(year, month, 1))            d.setDate(35)            this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1))        },        // 当前选择日期        pick (date) {            alert(this.formatDate(date.getFullYear(), date.getMonth() + 1, date.getDate()))        },    },})    </script><style lang="scss">    #app {        width: 40%;        margin: auto;    }    ul {        padding: 0;    }    li {        list-style-type: none;    }        .calendar {        position: relative;        width: 100%;        background: #fff;        margin-top: 20px;        margin-left: 20px;    }    .el-calendar__header {        display: block;    }    .el-calendar-table .el-calendar-day {        height: auto;        text-align: center;    }    .el-calendar-table td.is-selected {        background-color: #24b18d;        color: #fff;    }    .el-calendar-table .el-calendar-day:hover {        background-color: #24b18d;        color: #fff;    }    .el-calendar-table {        border-bottom: 1px solid #e4e4e4;        padding-bottom: 15px;    }    .el-calendar-table .next {        color: rgb(143, 143, 143);    }    .el-calendar__title,.el-calendar__button-group {        text-align: center;    }    .arrow {        width: 100%;        max-height: 46px;        position: absolute;        top: 15px;        text-align: center;    }    .arrow i {        font-size: 20px;        cursor: pointer;    }    .arrow i:nth-child(1) {        margin-right: 10%;        text-align: left;    }    .arrow i:nth-child(2) {        margin-left: 10%;        text-align: right;    }         .date {        position: relative;        margin-top: 20px;        padding: 10px 20px;        background-color: #D3D3D3;    }    .arrow0 {        width: 100%;        max-height: 46px;        position: absolute;        top: 27px;        left: 0px;        text-align: center;    }    .arrow0 i {        font-size: 20px;        cursor: pointer;    }    .arrow0 i:nth-child(1) {        margin-right: 10%;        text-align: left;    }    .arrow0 i:nth-child(2) {        margin-left: 10%;        text-align: right;    }    .month {        text-align: center;    }      .weekdays {        display: flex;    }     .weekdays li {        flex: 1;        text-align: center;    }     .days {        display: flex;    }     .days li {        flex: 1;        text-align: center;        cursor: pointer;    }     .days li span {        display: inline-block;        width: 22px;        height: 22px;    }    .days li span:hover {        color: #fff;        background-color: #409EFF;        border-radius: 50%;    }    .active {        display: inline-block;        color: #fff;        border-radius: 50%;        background-color: #fa6854!important;    }     .other-month {        color: #e4393c;    }   </style></html>

“vue怎么实现周日历切换效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: vue怎么实现周日历切换效果

本文链接: https://www.lsjlt.com/news/327409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue怎么实现周日历切换效果
    本篇内容介绍了“vue怎么实现周日历切换效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:代码:<!DOCTYPE ...
    99+
    2023-06-30
  • vue实现周日历切换效果
    本文实例为大家分享了vue实现周日历切换效果的具体代码,供大家参考,具体内容如下 废话不多说,直接上干货,需要的朋友自取 代码: <!DOCTYPE html> <...
    99+
    2022-11-13
  • vue实现价格日历效果
    本文实例为大家分享了vue实现价格日历效果的具体代码,供大家参考,具体内容如下 1、效果图 2、下载全局安装:npm install ele-calendar 3、在compone...
    99+
    2022-11-12
  • vue实现签到日历效果
    本文实例为大家分享了vue实现签到日历效果的具体代码,供大家参考,具体内容如下 先看看我们的效果图: 一、页面部分: <template>   <div clas...
    99+
    2022-11-13
  • vue怎么实现3D切换滚动效果
    本篇内容介绍了“vue怎么实现3D切换滚动效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这个是最终的一个效果,点击左右小箭头,实现滚动效...
    99+
    2023-06-29
  • vue实现图片切换效果
    本文实例为大家分享了vue实现图片切换效果的具体代码,供大家参考,具体内容如下 1)v-if/v-show 二者都可以实现让元素隐藏和显示。但是实现原理不同: v-if 是通过将元素...
    99+
    2022-11-12
  • vue实现tab栏切换效果
    本文实例为大家分享了vue实现tab栏切换效果的具体代码,供大家参考,具体内容如下 一个简单的tab栏切换组件,由tabs以及tab-pane组成 效果图 使用 <templ...
    99+
    2022-11-13
  • vue实现3D切换滚动效果
    本文实例为大家分享了vue实现3D切换滚动效果的具体代码,供大家参考,具体内容如下 今天写项目,遇到一个点击切换的滚动需求,贴出来,做一个记录 这个是最终的一个效果,点击左右小箭头...
    99+
    2022-11-13
  • 怎么用vue实现导航菜单切换效果
    这篇文章主要介绍“怎么用vue实现导航菜单切换效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用vue实现导航菜单切换效果”文章能帮助大家解决问题。具体代码如下css*{  ...
    99+
    2023-07-04
  • 使用Vue实现简单日历效果
    使用Vue实现简单的日历,供大家参考,具体内容如下 原理分析: 1.获取当前时间2.显示当前时间3.点击增加和减少月份4.大月和小月的天数 效果演示 初始样式(显示现在的日期时间) ...
    99+
    2022-11-13
  • 使用vue怎么实现一个价格日历效果
    今天就跟大家聊聊有关使用vue怎么实现一个价格日历效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离...
    99+
    2023-06-14
  • Vue实现简单图片切换效果
    本文实例为大家分享了Vue实现简单图片切换的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="en">...
    99+
    2022-11-12
  • 怎么用vue实现滚动tab跟随切换效果
    这篇文章主要介绍“怎么用vue实现滚动tab跟随切换效果”,在日常操作中,相信很多人在怎么用vue实现滚动tab跟随切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用vue实现滚动tab跟随切换效果...
    99+
    2023-07-04
  • angularjs怎么实现Tab栏切换效果
    这篇文章主要讲解了“angularjs怎么实现Tab栏切换效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“angularjs怎么实现Tab栏切换效果”吧!如图所示选中后提交的实例代码:&l...
    99+
    2023-06-29
  • css中怎么实现tab切换效果
    今天就跟大家聊聊有关css中怎么实现tab切换效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 其实是使用锚点作为标...
    99+
    2022-10-19
  • vue实现tab切换的放大镜效果
    本文实例为大家分享了vue实现tab切换的放大镜效果的具体代码,供大家参考,具体内容如下 废话不多说先看效果图 1.我这里并没有加遮罩层,如有需要请自行加上 2.图片建议使用4k高...
    99+
    2022-11-12
  • Vue中的table表单切换实现效果
    目录Vue表单切换实现效果首先给两个链接定义 一个numVue table切换组件Vue表单切换实现效果 点击第一个链接 出现以下数据 点击第二个链接 ,我没有写后台所以没有数据,...
    99+
    2022-11-13
    Vue table表单 table表单切换 Vue table表单切换
  • vue怎么实现动态的选中状态切换效果
    这篇文章主要介绍了vue怎么实现动态的选中状态切换效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么实现动态的选中状态切换效果文章都会有所收获,下面我们一起来看看吧。动态选中状态切换效果 H...
    99+
    2023-06-30
  • Vue怎么实现app前进后退动画切换效果
    今天小编给大家分享一下Vue怎么实现app前进后退动画切换效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一丶首先配置路由...
    99+
    2023-07-04
  • JavaScript怎么实现自定义日历效果
    本篇内容主要讲解“JavaScript怎么实现自定义日历效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现自定义日历效果”吧!实现思路:获取每个月的第一天是星期几,然...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作