《Layui宇宙版教程》提供2000人的QQ群进行交流学习,QQ群号:1046961650,或通过手机QQ扫描二维码进入:
1.28 滑块slider
作为一个拖拽式的交互性组件,滑块往往能给产品带来更好的操作体验。
模块加载名称:slider。
1.28.1 快速使用
通过对slider模块的使用,可以在页面构建出可拖动的滑动元素,如下代码是一个最基本的用法。
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
//渲染
slider.render({
elem: '#slideTest1' //绑定元素
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.2 基础参数
支持的基础参数如图1-xx所示。
1.28.3 属性type
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<br />
<br />
<br />
<br />
<div id="slideTest2"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
type: "default"
});
slider.render({
elem: '#slideTest2',
type: "vertical"
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.4 属性min和max
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
min: 30,
max: 90
});
</script>
</body>
</html>
1.28.5 属性range
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
range: true
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.6 属性value
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<br />
<br />
<br />
<div id="slideTest2"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
range: true,
value: [50, 60]
});
slider.render({
elem: '#slideTest2',
value: 50
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.7 属性step
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
step: 10
});
</script>
</body>
</html>
1.28.8 属性showstep
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
step: 10,
showstep: true
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.9 属性tips
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
tips: false
});
</script>
</body>
</html>
1.28.10 属性input
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
input: true
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.11 属性height
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
type: "vertical",
height: 500
});
</script>
</body>
</html>
1.28.12 属性disabled
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
value: 50,
disabled: true
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.13 属性theme
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
value: 50,
theme: "red"
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.14 自定义提示文本
当鼠标放在圆点和滑块拖拽时均会触发提示层。其默认显示的文本是它的对应数值,也可以自定义提示内容。
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<script>
var slider = layui.slider;
slider.render({
elem: '#slideTest1',
setTips: function(value) { //自定义提示文本
return "百分比:" + value + '%';
}
});
</script>
</body>
</html>
运行效果如图1-xx所示。
1.28.15 数值改变的回调
在滑块数值被改变时触发。该回调非常重要,可动态获得滑块当前的数值。可以将得到的数值赋值给隐藏域或者进行一些其它操作。
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<br />
<br />
<br />
<div id="slideTest2"></div>
<script>
var slider = layui.slider;
//当滑块为普通模式,回调返回的value是一个数值
slider.render({
elem: '#slideTest1',
change: function(value) {
console.log(value) //动态获取滑块数值
//do something
}
});
//当滑块为范围模式,回调返回的value是一个数组,包含开始和结尾
slider.render({
elem: '#slideTest2',
range: true,
change: function(value) {
console.log(value[0]) //得到开始值
console.log(value[1]) //得到结尾值
//do something
}
});
</script>
</body>
</html>
1.28.16 实例方法
执行slider实例时会返回一个当前实例的对象,里面包含针对当前实例的方法和属性。
语法:var ins1 = slider.render(options);
实例方法和属性如图1-xx所示。
1.28.17 动态改变滑块数值
可以通过外部方法动态改变滑块数值。
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery3.5.1.js"></script>
<link rel="stylesheet" href="layui/css/layui.css" />
<script src="layui/layui.all.js"></script>
</head>
<body style="padding: 10px;">
<br />
<br />
<div id="slideTest1"></div>
<br />
<br />
<br />
<div id="slideTest2"></div>
<br />
<br />
<br />
<input type="button" value="button1" id="button1">
<br />
<input type="button" value="button2" id="button2">
<script>
var slider = layui.slider;
//当滑块为普通模式,回调返回的value是一个数值
var ins1 = slider.render({
elem: '#slideTest1'
});
//当滑块为范围模式,回调返回的value是一个数组,包含开始和结尾
var ins2 = slider.render({
elem: '#slideTest2',
range: true
});
$(document).ready(function() {
$("#button1").click(function() {
ins1.setValue(20)
});
$("#button2").click(function() {
//若滑块开启了范围(range: true)
ins2.setValue(20, 0) //设置开始值
ins2.setValue(60, 1) //设置结尾值
});
});
</script>
</body>
</html>
运行效果如图1-xx所示。