量表 Svelte 元件

Framework7 附帶量表元件。它會產生美觀且完全回應式的 SVG 量表。

量表元件

包含下列元件

量表屬性

屬性類型預設值說明
id字串量表元素 ID 屬性
type字串圓形量表類型。可以是 圓形半圓形
value數字0量表值/百分比。必須是介於 01 之間的數字
size數字200產生的 SVG 影像大小 (以像素為單位)
bgColor字串透明量表背景顏色。可以是任何有效的顏色字串,例如 #ff00ffrgb(0,0,255) 等。
borderBgColor字串#eeeeee主邊框/描邊背景顏色
borderColor字串#000000主邊框/描邊顏色
borderWidth字串10主邊框/描邊寬度
valueText字串null量表值文字 (量表中央的大文字)
valueTextColor字串#000000值文字顏色
valueFontSize字串31值文字字體大小
valueFontWeight字串500值文字字體粗細
labelText字串null量表附加標籤文字
labelTextColor字串#888888標籤文字顏色
labelFontSize字串14標籤文字字體大小
labelFontWeight字串400標籤文字字體粗細

範例

gauge.svelte
<script>
  import { Navbar, Page, BlockTitle, Block, Segmented, Button, Gauge } from 'framework7-svelte';

  let gaugeValue = 0.5;
</script>

<Page>
  <Navbar title="Gauge" />
  <Block strongIos outlineIos>
    <p>
      Framework7 comes with Gauge component. It produces nice looking fully responsive SVG gauges.
    </p>
  </Block>
  <Block strongIos outlineIos class="text-align-center">
    <Gauge
      type="circle"
      value={gaugeValue}
      size={250}
      borderColor="#2196f3"
      borderWidth={10}
      valueText={`${gaugeValue * 100}%`}
      valueFontSize={41}
      valueTextColor="#2196f3"
      labelText="amount of something"
    />
    <Segmented tag="p" raised>
      <Button active={gaugeValue === 0} onClick={() => (gaugeValue = 0)}>0%</Button>
      <Button active={gaugeValue === 0.25} onClick={() => (gaugeValue = 0.25)}>25%</Button>
      <Button active={gaugeValue === 0.5} onClick={() => (gaugeValue = 0.5)}>50%</Button>
      <Button active={gaugeValue === 0.75} onClick={() => (gaugeValue = 0.75)}>75%</Button>
      <Button active={gaugeValue === 1} onClick={() => (gaugeValue = 1)}>100%</Button>
    </Segmented>
  </Block>

  <BlockTitle>Circle Gauges</BlockTitle>
  <Block strongIos outlineIos>
    <div class="grid grid-cols-2 grid-gap">
      <div class="text-align-center">
        <Gauge
          type="circle"
          value={0.44}
          valueText="44%"
          valueTextColor="#ff9800"
          borderColor="#ff9800"
        />
      </div>
      <div class="text-align-center">
        <Gauge
          type="circle"
          value={0.12}
          valueText="$120"
          valueTextColor="#4caf50"
          borderColor="#4caf50"
          labelText="of $1000 budget"
          labelTextColor="#f44336"
          labelFontWeight={700}
        />
      </div>
    </div>
  </Block>
  <BlockTitle>Semicircle Gauges</BlockTitle>
  <Block strongIos outlineIos>
    <div class="grid grid-cols-2 grid-gap">
      <div class="text-align-center">
        <Gauge
          type="semicircle"
          value={0.3}
          valueText="30%"
          valueTextColor="#f44336"
          borderColor="#f44336"
        />
      </div>
      <div class="text-align-center">
        <Gauge
          type="semicircle"
          value={0.5}
          valueText="30kg"
          valueTextColor="#e91e63"
          borderColor="#e91e63"
          labelText="of 60kg total"
          labelTextColor="#333"
        />
      </div>
    </div>
  </Block>
  <BlockTitle>Customization</BlockTitle>
  <Block strongIos outlineIos>
    <div class="grid grid-cols-2 grid-gap">
      <div class="text-align-center">
        <Gauge
          type="circle"
          value={0.35}
          valueText="35%"
          valueTextColor="#4caf50"
          valueFontSize={51}
          valueFontWeight={700}
          borderWidth={20}
          borderColor="#4caf50"
          borderBgColor="#ffeb3b"
          bgColor="#ffeb3b"
        />
      </div>
      <div class="text-align-center">
        <Gauge
          type="circle"
          value={0.67}
          valueText="$670"
          valueTextColor="#000"
          borderColor="#ff9800"
          labelText="of $1000 spent"
          labelTextColor="#4caf50"
          labelFontWeight={800}
          labelFontSize={12}
          borderWidth={30}
        />
      </div>
    </div>
    <br />
    <div class="grid grid-cols-2 grid-gap">
      <div class="text-align-center">
        <Gauge
          type="semicircle"
          value={0.5}
          valueText="50%"
          valueTextColor="#ffeb3b"
          valueFontSize={41}
          valueFontWeight={700}
          borderWidth={10}
          borderColor="#ffeb3b"
          borderBgColor="transparent"
        />
      </div>
      <div class="text-align-center">
        <Gauge
          type="semicircle"
          value={0.77}
          borderColor="#ff9800"
          labelText="$770 spent so far"
          labelTextColor="#ff9800"
          labelFontWeight={800}
          labelFontSize={12}
          borderWidth={10}
        />
      </div>
    </div>
  </Block>
</Page>