simon-chege/livewire-range-slider

noUiSlider 范围滑块的一个 Tall Stack 包装器

dev-main 2023-12-13 15:42 UTC

This package is not auto-updated.

Last update: 2024-09-19 17:42:01 UTC


README

Latest Stable Version Total Downloads License

一个简单的 noUiSlider blade 组件,适用于您的 Livewire 组件。

preview

安装

要开始使用,请将包要求添加到您的项目 composer.json 中。我的版本

composer require simon-chege/livewire-range-slider

原始

composer require jantinnerezo/livewire-range-slider

接下来,在 @livewireScripts 之后将脚本组件添加到您的模板中。

<html>
    <body>
        <!-- @livewireScripts -->

        <x-livewire-range-slider::scripts />
    </body>
</html>

需求

此包旨在与 Livewire 组件一起使用。请确保您仅在 Livewire 项目中使用它。

用法

假设您在 livewire 组件中拥有这些属性。

public $options = [
    'start' => [
        10,
        20
    ],
    'range' => [
        'min' =>  [1],
        'max' => [100]
    ],
    'connect' => true,
    'behaviour' => 'tap-drag',
    'tooltips' => true,
    'pips' => [
        'mode' => 'steps',
        'stepped' => true,
        'density' => 4
    ]
];

public $values;

$options 属性是传递给组件的 noUiSlider 选项,有关更多详细信息,请查看 noUiSlider - JavaScript Range Slider | Refreshless.com

$values 属性是范围滑块值的模型。

Livewire 的默认 wire:model 属性

<x-range-slider :options="$options" wire:model="values" />

延迟

在不需要实时更新范围滑块的情况下,您可以使用 .defer 修饰符。

<x-range-slider :options="$options" wire:model.defer="values" />

多个属性

为每个手柄定位属性也默认有效,只需简单地将属性以逗号分隔添加即可。

public $options = [
    'start' => [
        10,
        20
    ],
    'range' => [
        'min' =>  [1],
        'max' => [100]
    ],
    'connect' => true,
    'behaviour' => 'tap-drag',
    'tooltips' => true,
    'pips' => [
        'mode' => 'steps',
        'stepped' => true,
        'density' => 4
    ]
];

public $range = [
    'min' => 10, // Targets handle 1 value
    'max' => 100 // Targets handle 2 value
];
<x-range-slider :options="$options" wire:model="range.min,range.max" />