手写 分页

子组件:TimePage.vue

效果图

在这里插入图片描述

<template><div class="click-scroll-X"><!----><!-- eslint-disable-next-line  --><span class="left_btn" :disabled="pageNo == 1" @click="leftSlide"><</span><!-- 中间 --><div class="scroll_wrapper" ref="wrapperCon"><div class="scroll_list">![在这里插入图片描述](https://img-blog.csdnimg.cn/e75ad999561c4016bad4f13b9b447537.png)<divclass="item":class="{ active: pageNo == item.value }"@click="clickItem(item)"v-for="(item, index) in timeList":key="index">{{ item.label }}</div></div></div><!----><spanclass="right_btn":disabled="clickValue.value == timeList.length"@click="rightSlide":class="{ active: pageNo == clickValue.value + 1 }">></span><button>前往</button><button>00</button>: <button>30</button></div>
</template><script>
export default {name: "TimePage",props: ["timeList", "pageNo"],data() {return {clickValue: {},};},methods: {clickItem(item) {console.log(item, "item-----");this.clickValue = item;// let timeLength = this.timeList.length; //时间段个数this.$emit("getPageNo", this.clickValue);},// 左箭头leftSlide() {// 保存滚动盒子左侧已滚动的距离let left = this.$refs.wrapperCon.scrollLeft;let num = 0;clearInterval(this.timer);this.timer = null;this.timer = setInterval(() => {//   !left:已经滚动到最左侧//   一次性滚动距离(可调节)if (!left || num >= 360) {// 停止滚动clearInterval(this.timer);this.timer = null;return;}// 给滚动盒子元素赋值向左滚动距离this.$refs.wrapperCon.scrollLeft = left -= 30;// 保存向左滚动距离(方便判断一次性滚动多少距离)num += 30;}, 20);// 20:速度(可调节)},// 右箭头rightSlide() {// 保存滚动盒子左侧已滚动的距离let left = this.$refs.wrapperCon.scrollLeft;// 保存元素的整体宽度let scrollWidth = this.$refs.wrapperCon.scrollWidth;// 保存元素的可见宽度let clientWidth = this.$refs.wrapperCon.clientWidth;console.log(left, scrollWidth, clientWidth, "left999999");let num = 0;clearInterval(this.timer);this.timer = setInterval(() => {// 已经滚动距离+可见宽度// left+clientWidth>=scrollWidth:滚动到最右侧// num>=300一次性滚动距离if (left + clientWidth >= scrollWidth || num >= 360) {clearInterval(this.timer);return;}// 给滚动盒子元素赋值向左滚动距离this.$refs.wrapperCon.scrollLeft = left += 30;console.log(this.$refs.wrapperCon.scrollLeft," this.$refs.wrapperCon.scrollLeft----");// 保存向左滚动距离(方便判断一次性滚动多少距离)num += 30;}, 20);// 20:速度(可调节)},},computed: {},
};
</script><style lang="less" scoped>
.click-scroll-X {// text-align: right;display: flex;align-items: center;justify-content: end;margin-right: 20px;margin-top: 20px;.left_btn {font-size: 20px;cursor: pointer;margin: 0px 15px 0;}.right_btn {font-size: 20px;cursor: pointer;margin: 0px 15px 0;}button {margin: 0 5px;background-color: #f4f4f5;color: #606266;outline: none;border-radius: 2px;// padding: 0 4px;vertical-align: top;display: inline-block;font-size: 13px;height: 28px;line-height: 28px;cursor: pointer;box-sizing: border-box;text-align: center;border: 0;&[disabled] {color: #c0c4cc;cursor: not-allowed;}&.active {cursor: not-allowed;background-color: #409eff;color: #fff;}}.scroll_wrapper {width: 480px;overflow-x: scroll;.scroll_list {display: flex;align-items: center;justify-content: space-between;.item {cursor: pointer;width: 60px;height: 30px;display: flex;align-items: center;justify-content: center;// border: 1px solid #ccc;// border-radius: 3px;// box-sizing: border-box;flex-shrink: 0;}}}
}
.active {color: skyblue;
}
/*隐藏滚动条*/
.scroll_wrapper::-webkit-scrollbar {display: none;
}
</style>

父组件: ParentTime.vue

<template><div id="app"><TimePage:timeList="timeArray":pageNo="page"@getPageNo="getPageNo"></TimePage></div>
</template><script>
import TimePage from "./components/TimePage.vue";
export default {name: "App",data() {return {// 初始化页数page: 1,timeArray: [{ value: 0, label: "00:00" },{ value: 1, label: "00:15" },{ value: 2, label: "00:30" },{ value: 3, label: "00:45" },{ value: 4, label: "01:00" },{ value: 5, label: "01:15" },{ value: 6, label: "01:30" },{ value: 7, label: "01:45" },{ value: 8, label: "02:00" },{ value: 9, label: "02:15" },{ value: 10, label: "02:30" },{ value: 11, label: "02:45" },{ value: 12, label: "03:00" },{ value: 13, label: "03:15" },{ value: 14, label: "03:30" },{ value: 15, label: "03:45" },{ value: 16, label: "04:00" },{ value: 17, label: "04:15" },{ value: 18, label: "04:30" },{ value: 19, label: "04:45" },{ value: 20, label: "05:00" },{ value: 21, label: "05:15" },{ value: 22, label: "05:30" },{ value: 23, label: "05:45" },{ value: 24, label: "06:00" },{ value: 25, label: "06:15" },{ value: 26, label: "06:30" },{ value: 27, label: "06:45" },{ value: 28, label: "07:00" },{ value: 29, label: "07:15" },{ value: 30, label: "07:30" },{ value: 31, label: "07:45" },{ value: 32, label: "08:00" },{ value: 33, label: "08:15" },{ value: 34, label: "08:30" },{ value: 35, label: "08:45" },{ value: 36, label: "09:00" },{ value: 37, label: "09:15" },{ value: 38, label: "09:30" },{ value: 39, label: "09:45" },{ value: 40, label: "10:00" },{ value: 41, label: "10:15" },{ value: 42, label: "10:30" },{ value: 43, label: "10:,45" },{ value: 44, label: "11:00" },{ value: 45, label: "11:15" },{ value: 46, label: "11:30" },{ value: 47, label: "11:45" },{ value: 48, label: "12:00" },{ value: 49, label: "12:15" },{ value: 50, label: "12:30" },{ value: 51, label: "12:45" },{ value: 52, label: "13:00" },{ value: 53, label: "13:15" },{ value: 54, label: "13:30" },{ value: 55, label: "13:45" },{ value: 56, label: "14:00" },{ value: 57, label: "14:15" },{ value: 58, label: "14:30" },{ value: 59, label: "14:45" },{ value: 60, label: "15:00" },{ value: 61, label: "15:15" },{ value: 62, label: "15:30" },{ value: 63, label: "15:45" },{ value: 64, label: "16:00" },{ value: 65, label: "16:15" },{ value: 66, label: "16:30" },{ value: 67, label: "16:45" },{ value: 68, label: "17:00" },{ value: 69, label: "17:15" },{ value: 70, label: "17:30" },{ value: 71, label: "17:45" },{ value: 72, label: "18:00" },{ value: 73, label: "18:15" },{ value: 74, label: "18:30" },{ value: 75, label: "18:45" },{ value: 76, label: "19:00" },{ value: 77, label: "19:15" },{ value: 78, label: "19:30" },{ value: 79, label: "19:45" },{ value: 80, label: "20:00" },{ value: 81, label: "20:15" },{ value: 82, label: "20:30" },{ value: 83, label: "20:45" },{ value: 84, label: "21:00" },{ value: 85, label: "21:15" },{ value: 86, label: "21:30" },{ value: 87, label: "21:45" },{ value: 88, label: "22:00" },{ value: 89, label: "22:15" },{ value: 90, label: "22:30" },{ value: 91, label: "22:45" },{ value: 92, label: "23:00" },{ value: 93, label: "23:15" },{ value: 94, label: "23:30" },{ value: 95, label: "23:45" },],};},computed: {// timeLength() {//   return this.timeArray.length;// },},methods: {getPageNo(item) {this.page = item.value;console.log(this.page, item, "-----");},},components: {TimePage,},
};
</script><style scoped></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PanoFlow:学习360°用于周围时间理解的光流

1.摘要&#xff1a; 光流估计是自动驾驶和机器人系统中的一项基本任务&#xff0c;它能够在时间上解释交通场景。自动驾驶汽车显然受益于360提供的超宽视野&#xff08;FoV&#xff09;◦ 全景传感器。 然而&#xff0c;由于全景相机独特的成像过程&#xff0c;为针孔图像设计…

python输出奇数:如何使用Python输出奇数?

Python输出奇数的方法有很多种&#xff0c;下面给出一种使用for循环的实现方式&#xff1a;上述代码的输出结果为&#xff1a; Python输出奇数的方法有很多种&#xff0c;下面给出一种使用for循环的实现方式&#xff1a; # 定义一个变量n&#xff0c;表示要输出的奇数的最大值…

NSIC2050JBT3G 车规级120V 50mA ±15% 用于LED照明的线性恒流调节器(CCR) 增强汽车安全

随着汽车行业的巨大变革&#xff0c;高品质的汽车氛围灯效、仪表盘等LED指示灯效已成为汽车内饰设计中不可或缺的元素。深力科安森美LED驱动芯片系列赋能智能座舱灯效充满艺术感和科技感——NSIC2050JBT3G LED驱动芯片&#xff0c;实现对每路LED亮度和颜色进行细腻控制&#xf…

SLAM从入门到精通(launch文件学习)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 大家应该还记得我们在一开始学习ros的时候&#xff0c;如果需要启动一个节点的话&#xff0c;需要首先打开roscore&#xff0c;接着用rosrun打开对…

shiro550复现环境搭建

前言 Shiro反序列化漏洞指的是Apache Shiro安全框架中的一个潜在漏洞&#xff0c;该漏洞可能导致攻击者能够通过精心构造的恶意序列化对象来执行任意代码或进行拒绝服务&#xff08;DoS&#xff09;攻击。 这种漏洞的根源是在Shiro的RememberMe功能中&#xff0c;当用户选择“…

C# 实体类转换的两种方式

以下提供两种方式&#xff0c;一种是序列化&#xff0c;一种是泛型反射&#xff1b; 实现功能&#xff1a; 两个实体类数据转换赋值 //学生类 private class Student {public string name { get; set; }public int age { get; set; }public string className { get; set;…

【Node.js】crypto 模块

crypto模块的目的是为了提供通用的加密和哈希算法。用纯JavaScript代码实现这些功能不是不可能&#xff0c;但速度会非常慢。 Nodejs用C/C实现这些算法后&#xff0c;通过cypto这个模块暴露为JavaScript接口&#xff0c;这样用起来方便&#xff0c;运行速度也快。 只要密钥发…

location对象详解

location对象详解_window.location.assign_边中之城的博客-CSDN博客

vuex的模块化和namespaced

这里主要是将store里面的index.js这个文件变得更加有条理性一点&#xff0c;使得整个代码看起来比较清晰 主要的变动在于count.vue,person.vue,index.js count.vue <template><div><h1>当前求和为&#xff1a;{{sum}}</h1><h3>当前求和放大10…

制造业单项冠军(国家级、广东省、深圳市)奖励政策及申报对比

制造业单项冠军的头衔含金量极高&#xff0c;是某一细分领域的“领头雁”。下面深科信对“制造业单项冠军”&#xff08;国家级、广东省级、深圳市级&#xff09;的认定标准、奖励政策进行梳理 。 2023年9月25日&#xff0c;工信部办公厅正式发布《关于开展2023年制造业单项冠军…

【TensorFlow2 之012】TF2.0 中的 TF 迁移学习

#012 TensorFlow 2.0 中的 TF 迁移学习 一、说明 在这篇文章中&#xff0c;我们将展示如何在不从头开始构建计算机视觉模型的情况下构建它。迁移学习背后的想法是&#xff0c;在大型数据集上训练的神经网络可以将其知识应用于以前从未见过的数据集。也就是说&#xff0c;为什么…

linux 安装mysql

1、下载mysql安装包 2、创建mysql文件夹 mkdir /usr/local/mysql 3、解压mysql安装包&#xff0c;并将解压出来的文件夹下面的内容全部移动到/usr/local/mysql下 解压 tar zxvf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 移动 mv /usr/local/src/mysql-5.7.39-linux-gl…

postgres之pg_dump导出和导入

postgres使用有一段时间了&#xff0c;现记录一下一些常用的命令-导出导入&#xff0c;备以后查询&#xff1a; 1.指定表结构导出 pg_dump --host127.0.0.1 --port5432 --username[用户名] -t[表名1] -t [表名1] --schema-only postgres > F:\db.sql 2.指定表数据的导出…

Vue项目为页面添加水印效果

最近在做项目&#xff0c;有这样要求&#xff0c;需要在指定容器中添加水印&#xff0c;也可不设置容器&#xff0c;如果没有容器&#xff0c;则添加在整个页面中&#xff0c;即body&#xff0c;当接到这个需求的时候我第一想的方法就是用canvas来实现&#xff0c;话不多说搞起…

Unity设计模式——装饰模式

装饰模式&#xff08;Decorator&#xff09;&#xff0c;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更为灵活。 Component类&#xff1a; abstract class Component : MonoBehaviour {public abstract void Operation(); …

华为认证 | HCIP-Datacom,这门认证正式发布新版本!

华为认证数通高级工程师HCIP-Datacom-Campus Network Planning and Deployment V1.5&#xff08;中文版&#xff09;自2023年9月28日起&#xff0c;正式在中国区发布。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;华为公司…

互联网性能和可用性优化CDN和DNS

当涉及到互联网性能和可用性优化时&#xff0c;DNS&#xff08;Domain Name System&#xff09;和CDN&#xff08;Content Delivery Network&#xff09;是两个至关重要的元素。它们各自发挥着关键作用&#xff0c;以确保用户能够快速、可靠地访问网站和应用程序。在本文中&…

C++ 指向数组的指针

如果您对 C 指针的概念有所了解&#xff0c;那么就可以开始本章的学习。数组名是指向数组中第一个元素的常量指针。因此&#xff0c;在下面的声明中&#xff1a; double runoobAarray[50];runoobAarray 是一个指向 &runoobAarray[0] 的指针&#xff0c;即数组 runoobAarra…

Java 多线程编程

Java 多线程编程 目录 Java 多线程编程 一个线程的生命周 线程的优先级 创建一个线程 通过实现Runnable接口来创建线程 实例 通过继承Thread来创建线程 实例 Thread 方法 实例 线程的几个主要概念: 多线程的使用 Java给多线程编程提供了内置的支持。一个多线程程序包…

微信小程序项目如何用Hbuild启动,先让对方在微信开发平台将你的微信号添加成开发成员。

微信小程序项目如何用Hbuild启动&#xff0c;先让对方在微信开发平台将你的微信号添加成开发成员。然后在Hbuild官网下载&#xff0c;下载好后运行&#xff0c;点击文件导入项目&#xff0c;然后点击运行&#xff0c;模拟微信小程序&#xff0c;选择微信开发工具的地址&#xf…