Searchbar Svelte コンポーネント

Searchbar Svelte コンポーネントは、Framework7 の Searchbar コンポーネントを表します。

Searchbar コンポーネント

以下のコンポーネントが含まれています。

Searchbar プロパティ

すべての parameters を単一の params プロパティに渡すか、各 parameter の個別 prop を使用してコンポーネント属性で指定できます。

プロパティデフォルト説明
<Searchbar> プロパティ
initbooleantrueSearchbar を初期化します。
valuestring
number
Searchbar 入力の値を指定できます。customSearch が有効な場合に便利です。
formbooleantrueメインのサーチバー要素を div ではなく form タグとして使用します。
placeholderstring"Search"入力プレースホルダーテキスト
disableButtonbooleantrue無効化ボタンを有効にします。
disableButtonTextstringCancel無効化ボタンテキスト
clearButtonbooleantrueサーチバー入力のクリアボタンを有効にします。
expandablebooleanfalse展開可能なサーチバーを有効にします。
inlinebooleanfalseインラインサーチバーを有効にします。
spellcheckboolean入力要素に spellcheck 属性を設定します。
searchContainerstring
object
検索するリストブロックの CSS セレクターまたは HTML 要素
searchInstring.item-title検索する必要があるリストビュー要素のフィールドの CSS セレクター。通常は要素のタイトル( '.item-title' )を検索します。 `'.item-title, .item-text'` のように複数の要素を検索対象として指定することもできます。
searchItemstringli単一の検索アイテムの CSS セレクター。リストビューで検索を行う場合、単一のリスト要素 `li` でなければなりません。
searchGroupstring.list-groupグループ要素の CSS セレクター。hideGroups が有効な場合、グループを非表示にするために使用します。リストビューで検索を行う場合、通常はリストグループです。
searchGroupTitlestring.list-group-titleグループタイトルの CSS セレクター。hideGroupTitles が有効な場合、グループタイトルを非表示にするために使用します。リストビューで検索を行う場合、通常はリストグループタイトルです。
foundElstring
object
.searchbar-foundサーチバーの「見つかりました」要素の CSS セレクターまたは HTMLElement。指定されていない場合、サーチバーはページ上の .searchbar-found 要素を探します。
notFoundElstring
object
.searchbar-not-foundサーチバーの「見つかりませんでした」要素の CSS セレクターまたは HTMLElement。指定されていない場合、サーチバーはページ上の .searchbar-not-found 要素を探します。
backdropbooleanサーチバーのバックドロップ要素を有効にします。デフォルトでは、インラインサーチバーでは無効です。
backdropElstring
object
サーチバーのバックドロップ要素の CSS セレクターまたは HTMLElement。渡されておらず、backdrop パラメーターが true の場合、.searchbar-backdrop 要素を探します。見つからない場合は自動的に作成します。
ignorestring.searchbar-ignoreサーチバーによって無視され、常に検索結果に表示されるアイテムの CSS セレクター
customSearchbooleanfalse有効にすると、サーチバーは search-container で指定されたリストブロックを検索せず、カスタム検索機能を使用できます。たとえば、外部APIを呼び出して検索結果を取得し、手動で表示する場合などです。
removeDiacriticsbooleanfalse検索中にダイアクリティカルマーク(á、í、óなど)を削除/置換するには有効にします。
hideGroupTitlesbooleantrue有効にすると、検索はグループタイトルを考慮し、その直後に見つかったアイテムがない場合は非表示にします。
hideGroupsbooleantrue有効にすると、検索はリストビューのグループを考慮し、それらのグループ内に見つかったアイテムがない場合は非表示にします。
outlinebooleantrueiOS テーマにサーチバーの下部に細い枠線(ヘアリライン)を追加します。

Searchbar メソッド

<Searchbar> メソッド
.search(query)サーチバーに渡されたクエリを強制的に検索させます。
.enable()サーチバーを有効/アクティブ化します。
.disable()サーチバーを無効/非アクティブ化します。
.toggle()サーチバーを切り替えます。
.clear()検索クエリをクリアし、結果を更新します。

Searchbar イベント

イベント引数説明
<Searchbar> イベント
searchbarSearch(searchbar, query, previousQuery)検索中(検索フィールドの変更)にトリガーされるイベントです。引数として、サーチバーインスタンス、検索クエリ、以前のクエリを受け取ります。
searchbarClear(searchbar, previousQuery)ユーザーがサーチバー入力の「クリア」ボタンをクリックしたときにトリガーされるイベントです。引数として、サーチバーインスタンスと以前のクエリを受け取ります。
searchbarEnable(searchbar)サーチバーがアクティブになったときにトリガーされるイベントです。
searchbarDisable(searchbar)サーチバーが無効/非アクティブになったときにトリガーされるイベントです。
change(event)サーチバー入力要素で「変更」イベントが発生したときにトリガーされるイベントです。
input(event)サーチバー入力要素で「入力」イベントが発生したときにトリガーされるイベントです。
focus(event)サーチバー入力要素で「フォーカス」イベントが発生したときにトリガーされるイベントです。
blur(event)サーチバー入力要素で「フォーカス外れ」イベントが発生したときにトリガーされるイベントです。
clickClear(event)ユーザーが入力「クリア」ボタンをクリックしたときにトリガーされるイベントです。
clickDisable(event)ユーザーがサーチバーの無効化ボタンをクリックしたときにトリガーされるイベントです。

Searchbar スロット

Searchbar Svelte コンポーネントには、カスタム要素用の追加スロットがあります。

スロットなし

<Searchbar
  disableButtonText="Cancel"
  placeholder="Search in items"
  clearButton={true}
/>

<!-- Renders to: -->

<form class="searchbar">
  <div class="searchbar-inner">
    <div class="searchbar-input-wrap">
      <input type="search" placeholder="Search">
      <i class="searchbar-icon"></i>
      <span class="input-clear-button"></span>
    </div>
    <span class="searchbar-disable-button">Cancel</span>
  </div>
</form>

スロットあり

<Searchbar
  disableButtonText="Cancel"
  placeholder="Search in items"
  clearButton={true}
>
  <div slot="inner-start">Inner Start</div>
  <div slot="inner-end">Inner End</div>
  <div slot="input-wrap-start">Input Wrap Start</div>
  <div slot="input-wrap-end">Input Wrap End</div>
  <div slot="before-inner">Before Inner</div>
  <div slot="after-inner">After Inner</div>
</Searchbar>

<!-- Renders to: -->

<form class="searchbar">
  <div slot="before-inner">Before Inner</div>
  <div class="searchbar-inner">
    <div slot="inner-start">Inner Start</div>
    <div class="searchbar-input-wrap">
      <div slot="input-wrap-start">Input Wrap Start</div>
      <input type="search" placeholder="Search">
      <i class="searchbar-icon"></i>
      <span class="input-clear-button"></span>
      <div slot="input-wrap-end">Input Wrap End</div>
    </div>
    <span class="searchbar-disable-button">Cancel</span>
    <div slot="inner-end">Inner End</div>
  </div>
  <div slot="after-inner">After Inner</div>
</form>

Searchbar インスタンスへのアクセス

自動初期化を使用して Searchbar を初期化する場合(init={true} プロパティを使用)、Searchbar API を使用する必要がある場合は、.instance() コンポーネントのメソッドを呼び出すことで初期化されたインスタンスにアクセスできます。例:

<Searchbar bind:this={component}>...</Searchbar>

<script>
  let component;

  // to get instance in some method
  component.instance()
</script>

通常の Searchbar

searchbar.svelte
<script>
  import { Navbar, Page, Searchbar, Subnavbar, List, ListItem } from 'framework7-svelte';
</script>

<Page>
  <Navbar title="Searchbar">
    <Subnavbar inner={false}>
      <Searchbar searchContainer=".search-list" searchIn=".item-title" />
    </Subnavbar>
  </Navbar>
  <List strongIos outlineIos dividersIos class="searchbar-not-found">
    <ListItem title="Nothing found" />
  </List>
  <List strongIos outlineIos dividersIos class="search-list searchbar-found">
    <ListItem title="Acura" />
    <ListItem title="Audi" />
    <ListItem title="BMW" />
    <ListItem title="Cadillac " />
    <ListItem title="Chevrolet " />
    <ListItem title="Chrysler " />
    <ListItem title="Dodge " />
    <ListItem title="Ferrari " />
    <ListItem title="Ford " />
    <ListItem title="GMC " />
    <ListItem title="Honda" />
    <ListItem title="Hummer" />
    <ListItem title="Hyundai" />
    <ListItem title="Infiniti " />
    <ListItem title="Isuzu " />
    <ListItem title="Jaguar " />
    <ListItem title="Jeep " />
    <ListItem title="Kia" />
    <ListItem title="Lamborghini " />
    <ListItem title="Land Rover" />
    <ListItem title="Lexus " />
    <ListItem title="Lincoln " />
    <ListItem title="Lotus " />
    <ListItem title="Mazda" />
    <ListItem title="Mercedes-Benz" />
    <ListItem title="Mercury " />
    <ListItem title="Mitsubishi" />
    <ListItem title="Nissan " />
    <ListItem title="Oldsmobile " />
    <ListItem title="Peugeot " />
    <ListItem title="Pontiac " />
    <ListItem title="Porsche" />
    <ListItem title="Regal" />
    <ListItem title="Saab " />
    <ListItem title="Saturn " />
    <ListItem title="Subaru " />
    <ListItem title="Suzuki " />
    <ListItem title="Toyota" />
    <ListItem title="Volkswagen" />
    <ListItem title="Volvo" />
  </List>
</Page>

展開可能な Searchbar

searchbar-expandable.svelte
<script>
  import { Navbar, Page, Searchbar, List, ListItem, Link, NavRight } from 'framework7-svelte';
</script>

<Page>
  <Navbar title="Searchbar">
    <NavRight>
      <Link searchbarEnable=".searchbar-demo" iconIos="f7:search" iconMd="material:search" />
    </NavRight>
    <Searchbar
      class="searchbar-demo"
      expandable
      searchContainer=".search-list"
      searchIn=".item-title"
    />
  </Navbar>
  <List strongIos outlineIos dividersIos class="searchbar-not-found">
    <ListItem title="Nothing found" />
  </List>
  <List strongIos outlineIos dividersIos class="search-list searchbar-found">
    <ListItem title="Acura" />
    <ListItem title="Audi" />
    <ListItem title="BMW" />
    <ListItem title="Cadillac " />
    <ListItem title="Chevrolet " />
    <ListItem title="Chrysler " />
    <ListItem title="Dodge " />
    <ListItem title="Ferrari " />
    <ListItem title="Ford " />
    <ListItem title="GMC " />
    <ListItem title="Honda" />
    <ListItem title="Hummer" />
    <ListItem title="Hyundai" />
    <ListItem title="Infiniti " />
    <ListItem title="Isuzu " />
    <ListItem title="Jaguar " />
    <ListItem title="Jeep " />
    <ListItem title="Kia" />
    <ListItem title="Lamborghini " />
    <ListItem title="Land Rover" />
    <ListItem title="Lexus " />
    <ListItem title="Lincoln " />
    <ListItem title="Lotus " />
    <ListItem title="Mazda" />
    <ListItem title="Mercedes-Benz" />
    <ListItem title="Mercury " />
    <ListItem title="Mitsubishi" />
    <ListItem title="Nissan " />
    <ListItem title="Oldsmobile " />
    <ListItem title="Peugeot " />
    <ListItem title="Pontiac " />
    <ListItem title="Porsche" />
    <ListItem title="Regal" />
    <ListItem title="Saab " />
    <ListItem title="Saturn " />
    <ListItem title="Subaru " />
    <ListItem title="Suzuki " />
    <ListItem title="Toyota" />
    <ListItem title="Volkswagen" />
    <ListItem title="Volvo" />
  </List>
</Page>