dashed/livewire-range-slider

noUiSlider 范围滑动条的高级栈包装

v1.0.1 2024-03-15 10:32 UTC

This package is auto-updated.

Last update: 2024-09-15 11:44:38 UTC


README

Latest Stable Version Total Downloads License

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

preview

安装

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

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" />