欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端中骨架屏的三種運(yùn)用方式介紹

 更新時(shí)間:2025年05月21日 08:34:19   作者:拉不動(dòng)的豬  
這篇文章主要為大家詳細(xì)介紹了前端中骨架屏的三種運(yùn)用方式,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、骨架屏的三大運(yùn)用方式及案例

1.靜態(tài)HTML/CSS方案

<!-- 電商商品詳情頁(yè)案例 -->
<div class="skeleton-container">
  <div class="skeleton-header"></div>
  <div class="skeleton-gallery">
    <div class="skeleton-image"></div>
    <div class="skeleton-thumbnails">
      <div class="skeleton-thumb"></div>
      <div class="skeleton-thumb"></div>
    </div>
  </div>
  <div class="skeleton-content">
    <div class="skeleton-line" style="width:80%"></div>
    <div class="skeleton-line" style="width:60%"></div>
  </div>
</div>

<style>
.skeleton-image {
  background: linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 50%,#f2f2f2 75%);
  animation: shimmer 1.5s infinite;
  height: 300px;
}
@keyframes shimmer {
  to { background-position-x: -200%; }
}
</style>

關(guān)鍵點(diǎn):通過(guò)CSS動(dòng)畫模擬加載效果,需精確匹配真實(shí)DOM結(jié)構(gòu)

2.組件化方案(Vue/React)

// Vue動(dòng)態(tài)骨架屏組件
<template>
  <div v-if="loading" class="skeleton-wrapper">
    <SkeletonItem v-for="i in 5" :key="i" 
      :width="i===1 ? '80%' : '100%'" 
      :height="i===1 ? '24px' : '16px'"/>
  </div>
  <div v-else>
    <ActualContent :data="contentData"/>
  </div>
</template>

<script>
export default {
  components: {
    SkeletonItem: {
      props: ['width','height'],
      template: `<div class="skeleton-item" :style="{width, height}"/>`
    }
  }
}
</script>

優(yōu)勢(shì):可復(fù)用組件,動(dòng)態(tài)控制顯示狀態(tài)

3.自動(dòng)化生成方案

// 使用vue-skeleton-webpack-plugin
const SkeletonWebpackPlugin = require('vue-skeleton-webpack-plugin');

module.exports = {
  configureWebpack: {
    plugins: [
      new SkeletonWebpackPlugin({
        webpackConfig: {
          entry: './src/skeleton.js'
        },
        minimize: true,
        quiet: true
      })
    ]
  }
}

特點(diǎn):通過(guò)路由匹配自動(dòng)生成對(duì)應(yīng)骨架屏

二、關(guān)鍵實(shí)現(xiàn)要點(diǎn)

1.視覺(jué)一致性原則

  • 占位元素需與真實(shí)內(nèi)容布局1:1對(duì)應(yīng)
  • 使用與UI風(fēng)格協(xié)調(diào)的漸變色系
  • 動(dòng)畫持續(xù)時(shí)間控制在1-1.5秒

2.性能優(yōu)化策略

  • 骨架屏代碼應(yīng)控制在5KB以內(nèi)
  • 避免使用圖片資源,純CSS實(shí)現(xiàn)
  • 與PWA的預(yù)緩存策略結(jié)合使用

3.狀態(tài)管理規(guī)范

// 鴻蒙APP中的狀態(tài)管理案例
Page({
  data: {
    loading: true,
    error: false,
    empty: false
  },
  onLoad() {
    fetchData().then(res => {
      this.setData({ 
        loading: false,
        list: res.data || []
      });
    }).catch(() => {
      this.setData({ error: true });
    });
  }
})

最佳實(shí)踐:需處理加載失敗/數(shù)據(jù)為空等邊界情況

到此這篇關(guān)于前端中骨架屏的三種運(yùn)用方式介紹的文章就介紹到這了,更多相關(guān)前端骨架屏運(yùn)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript匿名函數(shù)之模仿塊級(jí)作用域

    JavaScript匿名函數(shù)之模仿塊級(jí)作用域

    這篇文章主要介紹了JavaScript匿名函數(shù)之模仿塊級(jí)作用域的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • javascript中apply/call和bind的使用

    javascript中apply/call和bind的使用

    本文主要介紹了javascript中apply/call和bind的使用。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 如何使用uniapp開(kāi)發(fā)微信小程序獲取當(dāng)前位置詳解

    如何使用uniapp開(kāi)發(fā)微信小程序獲取當(dāng)前位置詳解

    uni-app小程序項(xiàng)目無(wú)法直接獲取到地理位置,只能通過(guò)獲取到的經(jīng)緯度,調(diào)用第三方地圖Api獲取,下面這篇文章主要給大家介紹了關(guān)于如何使用uniapp開(kāi)發(fā)微信小程序獲取當(dāng)前位置的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • js跨域訪問(wèn)示例(客戶端/服務(wù)端)

    js跨域訪問(wèn)示例(客戶端/服務(wù)端)

    有關(guān)跨域訪問(wèn)的的文章,可以搜到很多,基本上大同小異,下面有個(gè)不錯(cuò)的訪問(wèn)示例,大家可以參考下
    2014-05-05
  • 使用JS實(shí)現(xiàn)圖片輪播的實(shí)例(前后首尾相接)

    使用JS實(shí)現(xiàn)圖片輪播的實(shí)例(前后首尾相接)

    下面小編就為大家?guī)?lái)一篇使用JS實(shí)現(xiàn)圖片輪播的實(shí)例(前后首尾相接)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • JS實(shí)現(xiàn)transform實(shí)現(xiàn)扇子效果

    JS實(shí)現(xiàn)transform實(shí)現(xiàn)扇子效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)transform實(shí)現(xiàn)扇子效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JS 組件系列之 bootstrap treegrid 組件封裝過(guò)程

    JS 組件系列之 bootstrap treegrid 組件封裝過(guò)程

    最近產(chǎn)品需要設(shè)計(jì)一套相對(duì)完整的組織架構(gòu)的解決方案,由于組織架構(gòu)涉及到層級(jí)關(guān)系,在表格里面展示層級(jí)關(guān)系,自然就要用到所謂的treegrid。下面小編通過(guò)本文給大家分享JS 組件系列之 bootstrap treegrid 組件的封裝過(guò)程,需要的朋友可以參考下
    2017-04-04
  • uniapp?@click事件冒泡問(wèn)題解決示例

    uniapp?@click事件冒泡問(wèn)題解決示例

    這篇文章主要為大家介紹了uniapp?@click事件冒泡問(wèn)題解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 使用JavaScript實(shí)現(xiàn)等比縮放的幾種常見(jiàn)方法

    使用JavaScript實(shí)現(xiàn)等比縮放的幾種常見(jiàn)方法

    這篇文章主要介紹了如何使用JavaScript對(duì)HTML中的元素和任意DOM元素進(jìn)行等比縮放,通過(guò)獲取容器或元素的尺寸信息,計(jì)算縮放比例,并應(yīng)用CSS變換(transform屬性)來(lái)實(shí)現(xiàn)等比縮放,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • JS 實(shí)現(xiàn)雙色表格實(shí)現(xiàn)代碼

    JS 實(shí)現(xiàn)雙色表格實(shí)現(xiàn)代碼

    通過(guò)為<tr>元素添加屬性或類型選擇器,再通過(guò)CSS設(shè)置可以實(shí)現(xiàn)雙色表格,但如果表格很長(zhǎng),逐個(gè)元素添加可真麻煩。而且這樣的代碼維護(hù)起來(lái)不容易。所以比較好的方式是用JS實(shí)現(xiàn)。
    2009-11-11

最新評(píng)論