当前位置: 首页 > wzjs >正文

免费俄罗斯网站制作wordpress怎么使用七牛

免费俄罗斯网站制作,wordpress怎么使用七牛,网站文章列表如何排版,大连警方最新通告功能说明 ​​拖动功能​​: 鼠标按下时记录初始位置和滚动位置拖动过程中计算移动距离并更新滚动位置松开鼠标后根据速度实现惯性滚动 ​​滚动控制​​: 支持鼠标滚轮横向滚动(通过 wheel 事件)自动边界检测防止滚动超出内容…

功能说明

​​拖动功能​​:

  • 鼠标按下时记录初始位置和滚动位置
  • 拖动过程中计算移动距离并更新滚动位置
  • 松开鼠标后根据速度实现惯性滚动

​​滚动控制​​:

  • 支持鼠标滚轮横向滚动(通过 wheel 事件)
  • 自动边界检测防止滚动超出内容范围

实现代码

<template><div ref="scrollContainer" class="horizontal-scroll-container"@mousedown="startDrag"@mousemove="onDrag"@mouseup="stopDrag"@mouseleave="stopDrag"><div class="scroll-content"><div v-for="(item, index) in items" :key="index" class="item">{{ item }}</div></div></div>
</template><script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue'// 定义滚动容器引用
const scrollContainer = ref<HTMLElement | null>(null)// 定义滚动内容数据
const items = ref<string[]>(Array.from({ length: 20 }, (_, i) => `Item ${i + 1}`))// 拖动状态变量
let isDragging = false
let startX = 0
let scrollLeft = 0
let lastTime = 0
let velocity = 0// 开始拖动
const startDrag = (e: MouseEvent): void => {if (!scrollContainer.value) returnisDragging = truestartX = e.pageX - scrollContainer.value.getBoundingClientRect().leftscrollLeft = scrollContainer.value.scrollLeftlastTime = performance.now()scrollContainer.value.style.cursor = 'grabbing'
}// 拖动中
const onDrag = (e: MouseEvent): void => {if (!isDragging || !scrollContainer.value) returnconst x = e.pageX - scrollContainer.value.getBoundingClientRect().leftconst walk = (x - startX) * 1.5 // 调整滚动速度系数scrollContainer.value.scrollLeft = scrollLeft - walk// 计算速度(用于惯性滚动)const now = performance.now()velocity = (x - startX) / (now - lastTime)lastTime = now
}// 停止拖动
const stopDrag = (): void => {if (!isDragging || !scrollContainer.value) returnisDragging = falseif (Math.abs(velocity) > 0.1) {requestAnimationFrame(inertiaScroll)}scrollContainer.value.style.cursor = 'grab'
}// 惯性滚动
const inertiaScroll = (): void => {if (!scrollContainer.value || Math.abs(velocity) < 0.01) returnscrollContainer.value.scrollLeft += velocity * 10velocity *= 0.95 // 摩擦系数requestAnimationFrame(inertiaScroll)
}// 边界检测
const checkBounds = (): void => {if (!scrollContainer.value) returnconst containerWidth = scrollContainer.value.clientWidthconst contentWidth = scrollContainer.value.scrollWidthif (scrollContainer.value.scrollLeft < 0) {scrollContainer.value.scrollLeft = 0} else if (scrollContainer.value.scrollLeft > contentWidth - containerWidth) {scrollContainer.value.scrollLeft = contentWidth - containerWidth}
}// 鼠标滚轮横向滚动
const handleWheel = (e: WheelEvent): void => {if (!scrollContainer.value) returne.preventDefault()scrollContainer.value.scrollLeft += e.deltaYcheckBounds()
}// 生命周期钩子
onMounted(() => {if (scrollContainer.value) {scrollContainer.value.addEventListener('wheel', handleWheel, { passive: false })}
})onUnmounted(() => {if (scrollContainer.value) {scrollContainer.value.removeEventListener('wheel', handleWheel)}
})
</script><style scoped>
.horizontal-scroll-container {width: 100%;overflow-x: auto;white-space: nowrap;cursor: grab;height: 220px; /* 确保容器有固定高度 */border: 1px solid #eee;border-radius: 8px;padding: 10px;box-sizing: border-box;
}.horizontal-scroll-container:active {cursor: grabbing;
}.scroll-content {display: inline-block;
}.item {display: inline-block;width: 200px;height: 200px;margin-right: 10px;background: #f0f0f0;display: flex;align-items: center;justify-content: center;font-size: 20px;border: 1px solid #ddd;box-sizing: border-box;border-radius: 4px;transition: transform 0.2s ease, box-shadow 0.2s ease;
}.item:hover {transform: scale(1.02);box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
</style>
http://www.dtcms.com/wzjs/553685.html

相关文章:

  • 网站建设宣传ppt模板下载怎么看网站是什么时候做的
  • 企业网站建设2017wordpress填错地址
  • 阿里云怎么创建网站网站开发公司海报
  • 专业建设的主要内容长春seo公司哪家好
  • 黄埭做网站下载百度网盘app最新版
  • 做网站维护需要什么证书直播网站功能怎么做
  • 阿里云可以做电商网站吗Wordpress与dw
  • 网站空间续费多少钱设计师网站prinest
  • 扬州哪里做网站好网站开发项目的需求分析
  • 企业开发网站建设建设银行关闭网站查询信用卡账单
  • xuezuo网站建设大连app开发公司排名
  • 自己做的网站怎么被搜录建筑设计软件哪个好用
  • 平面设计比较好的网站长沙设备建站按效果付费
  • 长沙好博网站建设有限公司通许网站建设
  • 怎么用vs2017做网站郑州专业喷绘制作公司
  • 网站外链建设可以提升网站权重对吗网站注册界面代码
  • 如何判断网站做的关键词南昌企业做网站设计
  • 深圳专业的网站制作公司少儿python基础教程
  • 深圳微商城网站设计价格网站 售后服务
  • 医院网站建设投标书重庆最好的网站建设公司
  • 建筑建设规范网站购买域名有什么用
  • 搭建企业网站宽带多大网络营销的概念和定义
  • 企业官网有哪些开封网站优化公司
  • 第一设计广州网站seo招聘
  • 青岛建网站手把手wordpress仿站
  • 关于网站得精神文明建设wordpress文件目录
  • 做ppt好的模板下载网站完整网站建设案例教程
  • 南头外贸网站建设嘉兴模板建站公司
  • 企业网站建设方案渠道成品源码1988
  • 电商网站的模块珠海酒店网站建设