vue实现鼠标拖拽div左右移动的功能

news2024/11/24 2:44:05

直接代码:

<template>
  <div class="demo">
    <div class="third-part" id="发展历程">
      <div class="title">发展历程</div>
      <div class="content" id="nav" v-if="dataList&&dataList.length>0">
        <div class="item" v-for="(item,index) in dataList" :key="index">
          <div>{{ item.month }}</div>
          <div>{{ item.content }}</div>
        </div>
      </div>
      <div class="year">
        <span :class="{'active': active==item}" @click="active=item" v-for="(item,index) in yearList" :key="index">{{ item }}</span>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        dataList: [
        { month: "2月",content: "先后通过CMMI3级、ISO9000、ITSS3级等多项国际、国家级认证。"},
        { month: "5月",content: "先后通过CMMI3级、ISO9000、ITSS3级等多项国际、国家级认证。"},
        { month: "7月",content: "先后通过CMMI3级、ISO9000、ITSS3级等多项国际、国家级认证。"},
        { month: "9月",content: "先后通过CMMI3级、ISO9000、ITSS3级等多项国际、国家级认证。"} //后期内容问UI
      ],
      active: 2023,
      yearList:['2023','2022','2021','2020']
      }
    },
    mounted(){
    this.$nextTick(()=> {
      this.scrollInit()
    })
  },
  methods: {
    scrollInit() {
        // 获取要绑定事件的元素
        const nav = document.getElementById("nav")
        var flag; 
        // 鼠标按下
        var downX; 
        // 鼠标点击的x下标
        var scrollLeft; 
        // 当前元素滚动条的偏移量
        nav.addEventListener("mousedown", function (event) {
          console.log("触发mousedown");
          flag = true;
          downX = event.clientX; 
          // 获取到点击的x下标
          scrollLeft = this.scrollLeft; 
          // 获取当前元素滚动条的偏移量
        });
          nav.addEventListener("mousemove", function (event) {
            if (flag) { 
            // 判断是否是鼠标按下滚动元素区域
            var moveX = event.clientX; 
            // 获取移动的x轴
            var scrollX = moveX - downX; 
            // 当前移动的x轴下标减去刚点击下去的x轴下标得到鼠标滑动距离
            this.scrollLeft = scrollLeft - scrollX 
            // 鼠标按下的滚动条偏移量减去当前鼠标的滑动距离
            console.log(scrollX)
            //当滑动到400位置时让2022样式变化等等
            if(scrollLeft == 400 ){
              that.active=2022
              console.log("到400了");
            }else if(scrollLeft == 600){
              console.log("到600了");
            }
          }
          });
          // 鼠标抬起停止拖动
          nav.addEventListener("mouseup", function () {flag = false;});
          // 鼠标离开元素停止拖动
          nav.addEventListener("mouseleave", function (event) {flag = false;});
        },
  },
  }
</script>

<style lang="scss" scoped>
.demo {
  user-select: none;
  width: 1920px;
}
  .third-part {
    width: 100%;
    height: 800px;
    background-image: url('../assets/img/about/aboutusbg3.png');
    background-size: 100% 100%;
    padding-top: 100px;
    box-sizing: border-box;
    .title {
      height: 60px;
      font-size: 48px;
      font-family: Alibaba PuHuiTi 2.0, Alibaba PuHuiTi 2.0-800;
      line-height: 60px;
      color: #fff;
    }
    .content {
      margin-left: 300px;
      margin-top: 100px;
      width: 1469px;
      height: 235px;
      overflow-x: auto;
      // box-sizing: border-box;
      white-space: nowrap;
      &::-webkit-scrollbar {
        width: 0px;
        height: 0px;
      }
      .item {
        width: 403px;
        height: 230px;
        text-align: left;
        margin-right: 130px;
        display: inline-block;
        white-space: wrap;
        div:nth-child(1){
          height: 89px;font-size: 60px;
          font-family: Anton, Anton-400;
          color: #fff;
          line-height: 60px;
          border-left: 3px solid #fff;
          padding-left: 37px;
        }
        div:nth-child(2){
          height: 141px;
          width: 365px;
          font-size: 28px;
          font-family: Alibaba PuHuiTi 2.0, Alibaba PuHuiTi 2.0-400;
          color: #ffffff;
          line-height: 50px;
          padding-left: 37px;
          border-left: 1px solid #fff;
        }
      }
    }
    .year {
      width: 1700px;
      height: 116px;
      margin-top: 114px;
      text-align: left;
      padding-left: 450px;
      span {
        display: inline-block;
        width: 200px;
        height: 100%;
        border-bottom: 1px solid #fff;
        font-size: 50px;
        font-family: Anton, Anton-400;
        color: #bebef6;
        line-height: 70px;
        padding: 30px 0;
        text-align: center;
        box-sizing: border-box;
      }
      span:hover {
        font-size: 70px;
        vertical-align: top;
        border-bottom: 4px solid #722ed1;
      }
      .active {
        font-size: 70px;
        vertical-align: top;
        border-bottom: 4px solid #722ed1;
      }
    }
  }
</style>

这部分区域可以鼠标拖拽左右滚动

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

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

相关文章

马斯克回应盖茨;谷歌反垄断案开庭;苹果发布 3nm 芯片的 iPhone 15丨RTE开发者日报 Vol.48

开发者朋友们大家好&#xff1a; 这里是「RTE 开发者日报」&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

液压切管机配套用液压泵站比例阀放大器

液压切管机配套用液压泵站是液压系统的动力源&#xff0c;可按机械设备工况需要提供一定压力、流量和清洁度的工作介质。它由泵组、油箱组件、控温组件、滤油器组件及蓄能器组件等组合而成&#xff0c;液压泵站主要服务于大型管道工程。

L1-020 帅到没朋友 C++解法【全网最全】

一、题目再现 当芸芸众生忙着在朋友圈中发照片的时候&#xff0c;总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;≤100&#xff09;&#xff0c;是已知朋友圈的个数&#xff1b;随后N行…

Oracel ORA-22992 错误的解决方法

在oracle数据库中&#xff0c;可以使用DBLink 进行垮数据库访问。 今天在使用dblink 查询数据时&#xff0c;提示如下&#xff1a;ORA-22992&#xff1a;无法使用从远程表选择的LOB定位器。 无论是查询远程表还是视图&#xff0c;如果里面存在 CLOB类型的字段&#xff0c;就会…

99%的人都不知道的免费在线制作电子画册的网站

你是否曾经想过自己制作一本精美的电子画册&#xff1f; 现在&#xff0c;小编给大家分享一款免费在线制作电子画册的工具&#xff0c;可以帮助你轻松实现。这个网站不仅提供了丰富的模板和素材&#xff0c;还让你在制作过程中可以随时预览和编辑&#xff0c;无需任何排版设计…

fastadmin框架调用model层的方法

当使用FastAdmin框架进行Web应用程序开发时&#xff0c;经常需要与数据库交互以执行各种操作&#xff0c;如获取、创建、更新和删除数据。为了实现这些操作&#xff0c;FastAdmin采用了Model-View-Controller&#xff08;MVC&#xff09;模式&#xff0c;其中Model层负责处理数…

人机融合+学科

人机融合是指人类和机器之间的密切合作和相互补充&#xff0c;在各个学科领域都有广泛的应用&#xff0c;未来将会不断促进各个学科的快速发展&#xff0c;并因此会产生较大的突破。同时&#xff0c;人机融合与各个学科的关系是相辅相成的&#xff0c;其应用涵盖广泛&#xff0…

苹果再发“黑科技”,合合信息扫描全能王新功能支持“360度立体式建模”

9月13日凌晨&#xff0c;搭载iOS 17正式版系统的iPhone 15系列新品正式发布。基于iPhone激光雷达、iOS 17系统&#xff0c;合合信息旗下扫描全能王新推出“物体扫描”功能&#xff0c;用户只需使用手机环绕目标物体扫描&#xff0c;便可实时进行3D建模&#xff0c;完成一次“36…

在微信小程序上怎么发布抽奖活动

微信小程序上的抽奖活动是一种非常有效的营销手段&#xff0c;可以吸引大量用户的关注和参与&#xff0c;提高品牌知名度和销售额。下面&#xff0c;我将为大家详细介绍如何在微信小程序上发布抽奖活动。 一、确定抽奖活动的目标 在策划抽奖活动之前&#xff0c;商家需要明确自…

详解梯度下降从BGD到ADAM - [北邮鲁鹏]

文章目录 参考文章及视频导言梯度下降的原理、过程一、什么是梯度下降&#xff1f;二、梯度下降的运行过程 批量梯度下降法(BGD)随机梯度下降法(SGD)小批量梯度下降法(MBGD)梯度算法的改进梯度下降算法存在的问题动量法(Momentum)动量法还有什么效果&#xff1f; 自适应梯度(Ad…

线性表——顺序表(增删查改)

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存 储。在数组上完成数据的增删查改。 静态顺序表——使用定长数组储存数据 静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了&#xff0c;空…

【网络教程】如何实现Windows系统下的SSH服务端免密登录(Windows如何开启SSH)

文章目录 开启Windows下的SSH服务端图形界面安装手动下载安装Windows如何查看系统用户名Windows如何查看本机IP开启免密登录Window生成秘钥Linux下生成秘钥配置公钥开启Windows下的SSH服务端 这篇文章演示的环境是Windows11Windows的SSH服务端默认情况下是没有安装的,他只安装…

数据结构题型5-前插结点操作

#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 100 #define ERROR 0 #define OK 1typedef struct LNode {Elemtype data;//数据域struct LNode* next;//指针域 }LNode, * LinkList;bool InitList(LinkList& L) …

【Vue】一文让你进入Vue的大门

Vue简介 官网 ● 英文官网 ● 中文官网 介绍与描述 Vue历史 Vue 是一套用来动态构建用户界面的渐进式JS框架 构建用户界面&#xff1a;把数据通过某种办法变成用户界面 渐进式&#xff1a;Vue可以自底向上逐层的应用&#xff0c;简单应用只需要一个轻量小巧的核心库&#xff0c…

性能、安全和稳定,袋鼠云数据服务平台 DataAPI 为企业 API 保驾护航

通过 API 对外提供数据服务是大部分企业中比较常见的数据应用方式&#xff0c;对于 API 平台管理者、开发者和调用者来说&#xff0c;API 的调用性能、安全性和稳定性是在平台选型时最需要考虑的三个因素。 袋鼠云API开发及管理平台【数栈-数据服务 DataAPI】通过多种手段标准…

nginx代理socket链接集群后,频繁断开重连

一、场景 nginx使用集群模式代理多个socket链接&#xff0c;socket链接频繁断开重连 二、具体表现如下 三、nginx代理配置 ## socket集群 upstream test_socket {server 192.168.1.233:9901;server 192.168.1.243:9901; }server {listen 8600;server_name localhost;l…

51单片机智能小车—PWM方式实现小车调速和转向

目录 1. 让小车动起来 2. 串口控制小车方向 3. 如何进行小车PWM调速 4. PWM方式实现小车转向 1. 让小车动起来 电机模块开发 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;具体根据实际调试 IA1输入高电平&#xff0c…

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

使用伏格尔法解决运输问题

物流和供应链管理是当前管理研究的热点和前沿领域。供应链是一个由物流系统和该供应链中的所有单个组织或企业相关活动组成的网络。为满足供应链中顾客需求&#xff0c;需要对商品服务及相关信息&#xff0c;从产地到消费地高效率低成本地流动及储存进行规划、执行和控制。运筹…