您的位置:首页 > 房产 > 家装 > photoshop官网_什么是网络营销信息传递模型_seo怎样_网络推广与推广

photoshop官网_什么是网络营销信息传递模型_seo怎样_网络推广与推广

2025/5/21 6:54:52 来源:https://blog.csdn.net/m0_58537749/article/details/146336070  浏览:    关键词:photoshop官网_什么是网络营销信息传递模型_seo怎样_网络推广与推广
photoshop官网_什么是网络营销信息传递模型_seo怎样_网络推广与推广

动态滚动效果常常被用于展示动态数据,例如新闻列表、报警信息或实时数据流。这种效果不仅能够节省页面空间,还能增强用户体验。本文将通过一个具体的 Vue 组件案例,详细介绍如何实现一个动态滚动效果,尤其是如何在用户交互时暂停和恢复滚动。

场景描述

需求:需要在一个固定高度的容器中展示多条报警信息,并且这些信息会自动滚动展示。同时,当用户鼠标悬停在信息列表上时,滚动应暂停,鼠标移开后继续滚动。这种效果可以通过 Vue 和原生 JavaScript 的结合来实现。

实现思路

  1. 动态数据展示:使用 Vue 的 v-for 指令动态渲染报警信息列表。
  2. 自动滚动逻辑:通过定时器和 scrollTop 属性控制容器的滚动。
  3. 用户交互响应:监听鼠标进入和离开事件,动态控制滚动的暂停和恢复。

代码实现

脚本部分

在脚本中,我们实现了滚动逻辑,并通过 Vue 的生命周期钩子管理滚动效果的启动和销毁。

<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue';
import CardTitle from '@/components/CardTitle/index.vue';const list = ref([// 报警信息数据
]);let isScrolling = true; // 控制滚动状态
let scrollInterval: any = null; // 定时器引用onMounted(() => {const container = document.querySelector('.list-container') as HTMLElement;if (!container) {console.error('滚动容器未找到,请检查类名是否正确');return;}const scrollHeight = container.scrollHeight;const containerHeight = container.clientHeight;if (scrollHeight <= containerHeight) {console.warn('内容高度小于容器高度,无需滚动');return;}let scrollPosition = 0;function smoothScroll() {if (!isScrolling) return;scrollPosition += 1; // 每次滚动的高度if (scrollPosition >= scrollHeight - containerHeight) {scrollPosition = 0; // 滚动到顶部}container.scrollTop = scrollPosition;scrollInterval = setTimeout(smoothScroll, 100); // 递归调用,模拟滚动}// 开始滚动smoothScroll();// 鼠标进入暂停滚动container.addEventListener('mouseenter', () => {isScrolling = false;clearTimeout(scrollInterval);});// 鼠标移出恢复滚动container.addEventListener('mouseleave', () => {isScrolling = true;smoothScroll();});
});onUnmounted(() => {// 清理事件监听器和定时器const container = document.querySelector('.list-container') as HTMLElement;if (container) {container.removeEventListener('mouseenter', () => {});container.removeEventListener('mouseleave', () => {});}clearTimeout(scrollInterval);
});
</script>
.list-container {height: 100%;overflow-y: auto; /* 允许垂直滚动 */
}

关键点解析

  1. 滚动逻辑:通过 setTimeoutscrollTop 实现平滑滚动。每次滚动固定高度,当滚动到底部时重置到顶部。
  2. 用户交互:监听 mouseentermouseleave 事件,动态控制滚动状态。
  3. 性能优化:使用 clearTimeout 清理定时器,避免内存泄漏。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com