按钮 Svelte 组件

按钮 Svelte 组件代表 Framework7 的 按钮 元素。

按钮组件

包含以下组件

按钮属性

按钮组件几乎拥有与 链接 组件相同的属性,但还有一些特定于按钮的属性。

属性类型默认值描述
<Button> 属性
typestring如果它是 submitbuttonreset 中的一个,则它将被渲染为具有相同 type 属性的 <button> 元素。
tabLinkstring
boolean
启用标签链接并指定目标标签的 CSS 选择器(如果指定为字符串)。
tabLinkActivebooleanfalse使此标签链接处于活动状态。
activebooleanfalse在分段中使用时使此按钮处于活动状态。必须用作 tab-link-active 的替代。
textstring按钮文本标签。
tooltipstring按钮的 工具提示 文本,在按钮悬停/按下时显示。
tooltipTriggerstringhover定义如何触发(打开)工具提示。可以是 hoverclickmanual
roundbooleanfalse使按钮变圆。
roundIosbooleanfalse仅在 iOS 主题中使按钮变圆。
roundMdbooleanfalse仅在 MD 主题中使按钮变圆。
largebooleanfalse使按钮变大。
largeIosbooleanfalse仅在 iOS 主题中使按钮变大。
largeMdbooleanfalse仅在 MD 主题中使按钮变大。
smallbooleanfalse使按钮变小。
smallIosbooleanfalse仅在 iOS 主题中使按钮变小。
smallMdbooleanfalse仅在 MD 主题中使按钮变小。
fillbooleanfalse使按钮填充颜色。
fillIosbooleanfalse仅在 iOS 主题中使按钮填充颜色。
fillMdbooleanfalse仅在 MD 主题中使按钮填充颜色。
tonalbooleanfalse使按钮采用色调样式。
tonalIosbooleanfalse仅在 iOS 主题中使按钮采用色调样式。
tonalMdbooleanfalse仅在 MD 主题中使按钮采用色调样式。
raisedbooleanfalse使按钮凸起。
raisedIosbooleanfalse仅在 iOS 主题中使按钮凸起。
raisedMdbooleanfalse仅在 MD 主题中使按钮凸起。
outlinebooleanfalse使按钮为轮廓线。
outlineIosbooleanfalse仅在 iOS 主题中使按钮为轮廓线。
outlineMdbooleanfalse仅在 MD 主题中使按钮为轮廓线。
<Button> 加载器相关属性
preloaderbooleanfalse启用按钮以显示加载器。
loadingbooleanfalse控制按钮状态以显示/隐藏加载器并隐藏/显示按钮文本(将按钮切换到加载状态)。
preloaderColorstring按钮的加载器颜色。
preloaderSizenumber
string
按钮的加载器大小。
<Button> 图标相关属性
iconSizestring
number
图标大小(以像素为单位)。
iconColorstring图标颜色。其中一个 默认颜色
iconstring自定义图标类。
iconF7stringF7 图标字体图标的名称。
iconMaterialstringMaterial Icons 字体图标的名称。
iconIosstring在使用 iOS 主题时使用的图标。由冒号分隔的图标系列和图标名称组成,例如 f7:house
iconMdstring在使用 MD 主题时使用的图标。由冒号分隔的图标系列和图标名称组成,例如 material:home
<Button> 导航/路由相关属性
hrefstring
boolean
#要加载的页面的 URL。如果使用布尔值 href="false",则不会添加 href 标签。
targetstring链接目标属性的值,例如 _blank_self 等。
viewstring要加载页面的视图的 CSS 选择器。或者 current 以在当前视图中加载。
externalboolean启用此选项以绕过 Framework7 的链接点击处理程序。
backboolean启用后退导航链接。
openInstring允许将页面路由打开为模态或面板。可以是 popuploginScreensheetpopoverpanel
forceboolean强制加载页面并忽略历史记录中的上一页(与 back 属性一起使用)。
reloadCurrentboolean重新加载新页面而不是当前活动页面。
reloadPreviousboolean用路由中的新页面替换历史记录中的上一页。
reloadAllboolean加载新页面并从历史记录和 DOM 中删除所有上一页。
reloadDetailboolean重新加载主从视图中的详细信息页面。
animateboolean禁用页面动画。
transitionstring的名称 自定义页面过渡
ignoreCacheboolean忽略缓存。
routeTabIdstring可路由标签 ID。
routePropsobject包含将传递给目标路由组件的附加属性的对象。
preventRouterbooleanfalse如果设置,则它不会被 Framework7 路由器处理。
<Button> 操作相关属性
panelOpenstring
boolean
要点击打开的面板的 CSS 选择器。或者可以是 leftright,如果 DOM 中只有左侧或右侧面板。
panelClosestring
boolean
点击关闭面板。
panelTogglestring
boolean
要点击切换的面板的 CSS 选择器。或者可以是 leftright,如果 DOM 中只有左侧或右侧面板。
actionsOpenstring
boolean
要点击打开的操作表的 CSS 选择器。
actionsClosestring
boolean
要点击关闭的操作表的 CSS 选择器。或者布尔值属性以关闭当前打开的操作表。
popupOpenstring
boolean
要点击打开的弹出窗口的 CSS 选择器。
popupClosestring
boolean
要点击关闭的弹出窗口的 CSS 选择器。或者布尔值属性以关闭当前打开的弹出窗口。
popoverOpenstring
boolean
要点击打开的弹出框的 CSS 选择器。
popoverClosestring
boolean
要点击关闭的弹出框的 CSS 选择器。或者布尔值属性以关闭当前打开的弹出框。
sheetOpenstring
boolean
要点击打开的表单模态的 CSS 选择器。
sheetClosestring
boolean
要点击关闭的表单模态的 CSS 选择器。或者布尔值属性以关闭当前打开的表单模态。
loginScreenOpenstring
boolean
要点击打开的登录屏幕的 CSS 选择器。
loginScreenClosestring
boolean
要点击关闭的登录屏幕的 CSS 选择器。或者布尔值属性以关闭当前打开的登录屏幕。
sortableEnablestring
boolean
要点击启用的可排序列表的 CSS 选择器。
sortableDisablestring
boolean
要点击禁用的可排序列表的 CSS 选择器。或者布尔值属性以关闭当前打开的可排序列表。
sortableTogglestring
boolean
要点击切换的可排序列表的 CSS 选择器。或者布尔值属性以切换当前打开/关闭的可排序列表。
searchbarEnablestring
boolean
要点击启用的可扩展搜索栏的 CSS 选择器。或者布尔值属性以启用第一个找到的搜索栏。
searchbarDisablestring
boolean
要点击禁用的可扩展搜索栏的 CSS 选择器。或者布尔值属性以禁用第一个找到的搜索栏。
searchbarTogglestring
boolean
要点击切换的可扩展搜索栏的 CSS 选择器。或者布尔值属性以切换第一个找到的搜索栏。
searchbarClearstring
boolean
要点击清除的可扩展搜索栏的 CSS 选择器。或者布尔值属性以清除第一个找到的搜索栏。
cardOpenstring
boolean
要点击打开的可扩展卡片的 CSS 选择器。或者布尔值以打开第一个找到的可扩展卡片。
cardClosestring
boolean
要点击关闭的可扩展卡片的 CSS 选择器。或者布尔值属性以关闭当前打开的可扩展卡片。
cardPreventOpenboolean点击带有此属性的元素不会打开其父级可扩展卡片。

按钮事件

事件描述
<Button> 事件
click点击按钮后将触发该事件。

示例

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

  let isLoading1 = false;
  let isLoading2 = false;

  const load1 = () => {
    if (isLoading1) return;
    isLoading1 = true;
    setTimeout(() => {
      isLoading1 = false;
    }, 4000);
  };

  const load2 = () => {
    if (isLoading2) return;
    isLoading2 = true;
    setTimeout(() => {
      isLoading2 = false;
    }, 4000);
  };
</script>

<!-- svelte-ignore a11y-invalid-attribute -->
<Page>
  <Navbar title="Buttons" />

  <BlockTitle>Usual Buttons</BlockTitle>
  <Block strong outlineIos>
    <div class="grid grid-cols-3 grid-gap">
      <Button>Button</Button>
      <Button>Button</Button>
      <Button round>Round</Button>
    </div>
  </Block>

  <BlockTitle>Tonal Buttons</BlockTitle>
  <Block strong outlineIos>
    <div class="grid grid-cols-3 grid-gap">
      <Button tonal>Button</Button>
      <Button tonal>Button</Button>
      <Button tonal round>Round</Button>
    </div>
  </Block>

  <BlockTitle>Fill Buttons</BlockTitle>
  <Block strong outlineIos>
    <div class="grid grid-cols-3 grid-gap">
      <Button fill>Button</Button>
      <Button fill>Button</Button>
      <Button fill round>Round</Button>
    </div>
  </Block>

  <BlockTitle>Outline Buttons</BlockTitle>
  <Block strong outlineIos>
    <div class="grid grid-cols-3 grid-gap">
      <Button outline>Button</Button>
      <Button outline>Button</Button>
      <Button outline round>Round</Button>
    </div>
  </Block>

  <BlockTitle>Raised Buttons</BlockTitle>
  <Block strong outlineIos>
    <p class="grid grid-cols-3 grid-gap">
      <Button raised>Button</Button>
      <Button raised fill>Fill</Button>
      <Button raised outline>Outline</Button>
    </p>
    <p class="grid grid-cols-3 grid-gap">
      <Button raised round>Round</Button>
      <Button raised fill round>Fill</Button>
      <Button raised outline round>Outline</Button>
    </p>
  </Block>

  <BlockTitle>Large Buttons</BlockTitle>
  <Block strong outlineIos>
    <p class="grid grid-cols-2 grid-gap">
      <Button large>Button</Button>
      <Button large fill>Fill</Button>
    </p>
    <p class="grid grid-cols-2 grid-gap">
      <Button large raised>Raised</Button>
      <Button large raised fill>Raised Fill</Button>
    </p>
    <p class="grid grid-cols-2 grid-gap">
      <Button large round>Round</Button>
      <Button large round fill>Round Fill</Button>
    </p>
  </Block>

  <BlockTitle>Small Buttons</BlockTitle>
  <Block strong outlineIos>
    <p class="grid grid-cols-3 grid-gap">
      <Button small>Button</Button>
      <Button small outline>Outline</Button>
      <Button small fill>Fill</Button>
    </p>
    <p class="grid grid-cols-3 grid-gap">
      <Button small round>Button</Button>
      <Button small outline round>Outline</Button>
      <Button small fill round>Fill</Button>
    </p>
  </Block>

  <BlockTitle>Preloader Buttons</BlockTitle>
  <Block strong outlineIos>
    <p class="grid grid-cols-3 grid-gap">
      <Button preloader loading={isLoading1} onClick={load1} large>Load</Button>
      <Button preloader loading={isLoading2} onClick={load2} large fill>Load</Button>
    </p>
  </Block>

  <BlockTitle>Color Buttons</BlockTitle>
  <Block strong outlineIos>
    <div class="grid grid-cols-3 grid-gap">
      <Button color="red">Red</Button>
      <Button color="green">Green</Button>
      <Button color="blue">Blue</Button>
    </div>
  </Block>

  <BlockTitle>Color Fill Buttons</BlockTitle>
  <Block strong outlineIos>
    <p class="grid grid-cols-3 grid-gap">
      <Button color="red">Red</Button>
      <Button color="green">Green</Button>
      <Button color="blue">Blue</Button>
    </p>
    <p class="grid grid-cols-3 grid-gap">
      <Button color="pink">Pink</Button>
      <Button color="yellow">Yellow</Button>
      <Button color="orange">Orange</Button>
    </p>
    <p class="grid grid-cols-3 grid-gap">
      <Button color="black">Black</Button>
      <Button color="white">White</Button>
    </p>
  </Block>
</Page>