發(fā)布時(shí)間:2024-01-18 20:14:04 瀏覽量:368次
生活中,我們總是希望我們的付出,能得到對(duì)方的回應(yīng)。在web交互中,也是這樣的,我們總是希望我們的每一次點(diǎn)擊,都能得到應(yīng)有的響應(yīng)。

頁(yè)面交互響應(yīng)進(jìn)度條
而在當(dāng)網(wǎng)絡(luò)有延遲,web請(qǐng)求得不到快速回饋,我們會(huì)以為自己點(diǎn)擊無(wú)效,多次點(diǎn)擊使頁(yè)面崩潰,面對(duì)這些情況,使用 NProgress 就能使問(wèn)題得到解決。
官方體驗(yàn)地址:
https://ricostacruz.com/nprogress/
1.安裝 NProgress 到工程中:
npm install nprogress2.導(dǎo)入到項(xiàng)目中
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'3.在響應(yīng)程序前后,使用 NProgress
// 開(kāi)始
NProgress.start();
// 響應(yīng)程序
{...}
// 結(jié)束
NProgress.done();(1)前端
基于ElementUI的Starter來(lái)編寫(xiě)的,當(dāng)然基于 Vue/Webpack 都可以,只不過(guò)筆者想減少無(wú)關(guān)操作,快速演示效果。
ElementUI的Starter:
https://github.com/ElementUI/element-starter
<template>
<div id="app">
<img src="./assets/logo.png">
<div>
<el-button @click="startHacking">Start</el-button>
</div>
</div>
</template><script>
// 導(dǎo)入 NProgress 包對(duì)應(yīng)的JS和CSS
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
export default {
methods: {
async startHacking() {
NProgress.start();
const {
data: res
} = await this.$http.get("http://localhost/test/hello");
this.$notify({
title: 'OK',
type: 'success',
message: res,
duration: 3000
})
NProgress.done();
}
}
}
</script><style>
#app {
font-family: Helvetica, sans-serif;
text-align: center;
}
</style>(2)后端
一個(gè)簡(jiǎn)單的基于 SpringBoot 的接口
package com.cun.nprogressserver.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/hello")
public String hello() throws InterruptedException {
// 模擬后端數(shù)據(jù)處理消耗的時(shí)間
Thread.sleep(1000);
return "hello";
}
}(3)效果
點(diǎn)擊 Start 按鈕,網(wǎng)頁(yè)上方有一條響應(yīng)條 ~

NProgress 輕量易用,幾行代碼的引入,即可為項(xiàng)目增添幾許別致的動(dòng)感,趕緊試試吧!
本文全部代碼
前端:
https://github.com/larger5/nprogress-web
后端:
https://github.com/larger5/nprogress-server
熱門資訊
1. 10個(gè)免費(fèi)學(xué)習(xí)UI設(shè)計(jì)的網(wǎng)站 提升你的設(shè)計(jì)能力
怎樣可以提升你的UI設(shè)計(jì)能力!第一個(gè):站酷站酷想必是設(shè)計(jì)師都知道的一個(gè)網(wǎng)站,里面不止有UI設(shè)計(jì)的資源,還有其他設(shè)計(jì)的,不如:平面設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、字體...
2. iPhone6的UI設(shè)計(jì)尺寸規(guī)范,原來(lái)如此重要!
想要了解iPhone6界面設(shè)計(jì)的尺寸規(guī)范嗎?這里為您詳細(xì)介紹iPhone6的UI設(shè)計(jì)尺寸規(guī)范,包括界面尺寸、圖標(biāo)尺寸、可點(diǎn)擊高度規(guī)范、搜索欄高度規(guī)范以及界面元素之間的距離規(guī)范。
3. 移動(dòng)端UI設(shè)計(jì)中常見(jiàn)的5種APP界面類型,你get到了嗎?
通過(guò)介紹移動(dòng)端UI設(shè)計(jì)中的閃屏頁(yè)、引導(dǎo)頁(yè)、浮層引導(dǎo)頁(yè)、空白頁(yè)和首頁(yè)等5種APP界面類型,幫助大家更好地了解UI設(shè)計(jì)的基本知識(shí)
4. 12個(gè)絕佳的UI設(shè)計(jì)網(wǎng)站,助力你的創(chuàng)作之旅!
將為大家介紹12個(gè)絕佳的UI設(shè)計(jì)網(wǎng)站,這些網(wǎng)站不僅可以為你提供靈感,還可以幫助你學(xué)習(xí)新的技巧,助力你的創(chuàng)意之旅!dribbbleDribbble 是一個(gè)面向設(shè)計(jì)師的...
5. 移動(dòng)端列表頁(yè)和表單頁(yè)設(shè)計(jì)秘訣:讓你的APP點(diǎn)擊率翻倍
在移動(dòng)端設(shè)計(jì)中,列表頁(yè)和表單頁(yè)是不可或缺的部分。一個(gè)好的列表頁(yè)和表單頁(yè)設(shè)計(jì)能夠讓用戶輕松地獲取信息并產(chǎn)生點(diǎn)擊欲望,從而提高點(diǎn)擊率。本文將為你...
6. 史上最全,平面設(shè)計(jì)UI設(shè)計(jì)必備的77個(gè)國(guó)內(nèi)外素材、設(shè)計(jì)資源網(wǎng)站
ui設(shè)計(jì)社區(qū),大神太多了。3、behance: https://www.behance.net/ ,著名設(shè)計(jì)... 對(duì)于品牌設(shè)計(jì)師來(lái)說(shuō),除了圖案素材收集之外,還有一個(gè)很重要的,就是設(shè)計(jì)故...
7. 推薦10本適合UI設(shè)計(jì)師看的書(shū)籍,輕松掌握技能!
對(duì)于想要提高自己的設(shè)計(jì)能力和創(chuàng)造力的小白和UI設(shè)計(jì)師來(lái)說(shuō),這本書(shū)是一個(gè)很好的選擇。4.《設(shè)計(jì)的覺(jué)醒》(IKKO TANAKA)推薦理由: 這本書(shū)是日本現(xiàn)代平面...
8. 設(shè)計(jì)中的色彩心理學(xué):淺析中西方色彩的歷史演變與設(shè)計(jì)應(yīng)用
摘要:本文探討了色彩的歷史演變和設(shè)計(jì)應(yīng)用。通過(guò)對(duì)色彩在早期文明社會(huì)中的實(shí)用運(yùn)用、不同文化背景下色彩觀念的差異、色彩在設(shè)計(jì)中的重要性以及新興技...
9. 武漢UI設(shè)計(jì)培訓(xùn)班費(fèi)用怎么樣?想學(xué)UI設(shè)計(jì)要多少錢?
想了解武漢UI設(shè)計(jì)培訓(xùn)班的費(fèi)用是多少嗎?不知道學(xué)UI設(shè)計(jì)要花多少錢?不妨看看這篇文章,了解UI設(shè)計(jì)培訓(xùn)班的學(xué)費(fèi)價(jià)格以及學(xué)習(xí)內(nèi)容。
10. 零基礎(chǔ)學(xué)UI設(shè)計(jì)要多久?培訓(xùn)完能拿多少工資?
探索零基礎(chǔ)UI設(shè)計(jì)培訓(xùn)的時(shí)長(zhǎng)與薪資前景。了解數(shù)字藝術(shù)教育領(lǐng)域的專業(yè)課程,以及培訓(xùn)后的職業(yè)發(fā)展機(jī)會(huì)。
最新文章
同學(xué)您好!