NPM- 滚动进度可视化插件

目录

  • [progress-scroll 滚动进度插件](#progress-scroll 滚动进度插件)
    • [📦 体验](#📦 体验)
    • [🌍 安装](#🌍 安装)
    • [🛹 注入](#🛹 注入)
      • [🎉 配置](#🎉 配置)
    • [🤖 使用方法](#🤖 使用方法)
      • [📝 使用示例 Demo.vue](#📝 使用示例 Demo.vue)
    • [💌 原理](#💌 原理)

progress-scroll 滚动进度插件

🤖🎉🎉 您的 进度监控 插件是一个基于 原生 Css 封装的实用 hooks 工具,用于在 Vue.js 应用程序中展示进度。它提供了一种简单、定制且具备高兼容性 。

📦 体验

一键速看

🌍 安装

你可以使用 npm 或 pnpm 安装插件:

javascript 复制代码
npm i vue3-progress-scroll

🛹 注入

在你的主应用程序入口文件(例如 main.js)中,导入并使用 :
main.js

javascript 复制代码
/* Step 1
------------------------------------------------------------------ */
import { useScroll } from "vue3-progress-scroll";
const app = createApp(App);
app.use(useScroll);

🎉 配置

javascript 复制代码
/* Step 2
------------------------------------------------------------------ */
// 注册插件并提供自定义的进度条属性(可选)例如:
app.use(useScroll, {
	progress: "green", // 进度条颜色
	progressRollback: "#fff", // 进度条回滚颜色
	progressTop: "3px", // 进度条距离顶部的距离
	progressLeft: "0px", // 进度条距离左边的距离
	UIViewBackground: "#fff", // 页面背景色
});

🤖 使用方法

一旦你设置了插件,你就可以在组件中使用 $openScroll 和 $closeScroll() 方法:

第一种 inject

javascript 复制代码
/* Step 3
------------------------------------------------------------------ */
// 在父容器绑定类名
<div class="ProgressTopBar">
    <p v-for="(item, index) in 1000" :key="index">{{ index + 1 }}</p>
</div>

import { ref, inject } from "vue";
import { scrollKey } from "vue3-progress-scroll";
inject(scrollKey)?.$openScroll();
inject(scrollKey)?.$closeScroll();

第二种 getCurrentInstance()

javascript 复制代码
import { getCurrentInstance } from "vue";
const { proxy }: any = getCurrentInstance();
proxy.$openScroll();
proxy.$closeScroll();

📝 使用示例 Demo.vue

javascript 复制代码
<template>
	<div class="ProgressTopBar">
		<p v-for="(item, index) in items" :key="index">{{ item }}</p>
	</div>
</template>

<script setup lang="ts">
	// vue3.2.0+ 之后支持的新特性
	defineOptions({
		name: "scrollBar", // 组件名
		inheritAttrs: false, // 是否继承父组件的属性
	});
	import { ref, inject } from "vue";
	const items = ref<string[]>([]);
	for (let i = 0; i < 200; i++) items.value.push(`Item ${i + 1}`);

	import { scrollKey } from "vue3-progress-scroll";
	inject(scrollKey)?.$openScroll();
	inject(scrollKey)?.$closeScroll();
</script>

💌 原理

html 复制代码
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>进度条 原理</title>
		<style>
			/* 知其意才能更好的使用~ */
			body {
				position: relative;
				padding: 50px;
				font-size: 24px;
				line-height: 30px;
				background-image: linear-gradient(to right top, #ffcc00 50%, #eee 50%);
				background-size: 100% calc(100% - 100vh + 5px);
				background-repeat: no-repeat;
				z-index: 1;
			}

			body::after {
				content: "";
				position: fixed;
				top: 5px;
				left: 0;
				bottom: 0;
				right: 0;
				background: #fff; /* 尝试注释我看看 */
				z-index: -1;
			}

		   /**
			* Unrelated css
			*/

			h1 {
				font-size: 32px;
				line-height: 60px;
			}

			ul {
				margin-top: 30px;
			}

			p {
				font-size: 24px;
				line-height: 30px;
				margin-top: 30px;
			}
		</style>
	</head>

	<body>
		<h1>不可思议的纯 CSS 进度条效果</h1>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<ul>
			<li>1.xxxxxxxxxxxxxxxxxxxxx</li>
			<li>2.xxxxxxxxxxxxxxxxxxxxx</li>
			<li>3.xxxxxxxxxxxxxxxxxxxxx</li>
			<li>4.xxxxxxxxxxxxxxxxxxxxx</li>
		</ul>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>

		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>
		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>
		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>
		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>
		<p>
			在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助
			JS ,能否巧妙的实现上述效果。
		</p>

		<p>
			OK,继续。这个效果是我在业务开发的过程中遇到的一个类似的小问题。其实即便让我借助
			Javascript
			,我的第一反应也是,感觉很麻烦啊。所以我一直在想,有没有可能只使用 CSS
			完成这个效果呢?
		</p>
	</body>
</html>

相关推荐
珹洺39 分钟前
从 HTML 到 CSS:开启网页样式之旅(三)—— CSS 三大特性与 CSS 常用属性
前端·javascript·css·网络·html·tensorflow·html5
T^T尚5 小时前
uniapp H5上传图片前压缩
前端·javascript·uni-app
出逃日志6 小时前
JS的DOM操作和事件监听综合练习 (具备三种功能的轮播图案例)
开发语言·前端·javascript
XIE3926 小时前
如何开发一个脚手架
前端·javascript·git·npm·node.js·github
山猪打不过家猪6 小时前
React(五)——useContecxt/Reducer/useCallback/useRef/React.memo/useMemo
前端·javascript·react.js
前端青山6 小时前
React事件处理机制详解
开发语言·前端·javascript·react.js
科技D人生6 小时前
Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
前端·vue.js·vue ref·vue ref 响应式·vue reactive
对卦卦上心6 小时前
React-useEffect的使用
前端·javascript·react.js
练习两年半的工程师6 小时前
React的基本知识:事件监听器、Props和State的区分、改变state的方法、使用回调函数改变state、使用三元运算符改变state
前端·javascript·react.js
啵咿傲6 小时前
在React中实践一些软件设计思想 ✅
前端·react.js·前端框架