HTML5 滑动条。如何使用 'noUiSlider'
HTML5 slider bar. How to use the 'noUiSlider'
下午好,
我正在尝试实现 'noUIslider' 滑动条 (http://refreshless.com/nouislider/),即使是他们主页上的第一个示例,我也很吃力。
我下载了各种css和js解压到一个文件夹里。然后我写了下面的 html 页面,但看起来没有任何东西正常工作(空白 html 页面)。关于我错过了什么的任何线索?
非常感谢您的帮助,祝您星期天愉快。
最良好的祝愿,
洛朗
<!DOCTYPE html>
<html>
<head>
<link href="nouislider.min.css" rel="stylesheet">
<style>
#showcase {
margin: 0 20px;
text-align: center;
}
#range {
height: 300px;
margin: 0 auto 30px;
}
#value-span,
#value-input {
width: 50%;
float: left;
display: block;
text-align: center;
margin: 0;
}
</style>
</head>
<body>
<script src="nouislider.min.js"></script>
<script>
var range = document.getElementById('range');
noUiSlider.create(range, {
start: [ 20, 80 ], // Handle start position
step: 10, // Slider moves in increments of '10'
margin: 20, // Handles must be more than '20' apart
connect: true, // Display a colored bar between the handles
direction: 'rtl', // Put '0' at the bottom of the slider
orientation: 'vertical', // Orient the slider vertically
behaviour: 'tap-drag', // Move handle on tap, bar is draggable
range: { // Slider can select '0' to '100'
'min': 0,
'max': 100
},
pips: { // Show a scale with the slider
mode: 'steps',
density: 2
}
});
var valueInput = document.getElementById('value-input'),
valueSpan = document.getElementById('value-span');
// When the slider value changes, update the input and span
range.noUiSlider.on('update', function( values, handle ) {
if ( handle ) {
valueInput.value = values[handle];
} else {
valueSpan.innerHTML = values[handle];
}
});
// When the input changes, set the slider value
valueInput.addEventListener('change', function(){
range.noUiSlider.set([null, this.value]);
});
</script>
</body>
</html>
将脚本标签放在底部
在正文标签中插入“”
<!DOCTYPE html>
<html>
<head>
<link href="//cdn.bootcss.com/noUiSlider/8.5.1/nouislider.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/noUiSlider/8.5.1/nouislider.js"></script>
<style>
#showcase {
margin: 0 20px;
text-align: center;
}
#range {
height: 300px;
margin: 0 auto 30px;
}
#value-span,
#value-input {
width: 50%;
float: left;
display: block;
text-align: center;
margin: 0;
}
</style>
</head>
<body>
<div id="range"></div>
</body>
<script>
var range = document.getElementById('range');
noUiSlider.create(range, {
start: [ 20, 80 ], // Handle start position
step: 10, // Slider moves in increments of '10'
margin: 20, // Handles must be more than '20' apart
connect: true, // Display a colored bar between the handles
direction: 'rtl', // Put '0' at the bottom of the slider
orientation: 'vertical', // Orient the slider vertically
behaviour: 'tap-drag', // Move handle on tap, bar is draggable
range: { // Slider can select '0' to '100'
'min': 0,
'max': 100
},
pips: { // Show a scale with the slider
mode: 'steps',
density: 2
}
});
var valueInput = document.getElementById('value-input'),
valueSpan = document.getElementById('value-span');
// When the slider value changes, update the input and span
range.noUiSlider.on('update', function( values, handle ) {
if ( handle ) {
valueInput.value = values[handle];
} else {
valueSpan.innerHTML = values[handle];
}
});
// When the input changes, set the slider value
valueInput.addEventListener('change', function(){
range.noUiSlider.set([null, this.value]);
});
</script>
</html>
尝试将您的自定义 js 包装在分配给 window.onload
事件的函数内的 <script>
标记中。
<script>
window.onload = function() {
… // your custom code here
}
</script>
您的代码运行良好,您需要在 body 标记中添加一个 div。
<div id="range"></div>
至少那是我前进的动力:)
下午好,
我正在尝试实现 'noUIslider' 滑动条 (http://refreshless.com/nouislider/),即使是他们主页上的第一个示例,我也很吃力。
我下载了各种css和js解压到一个文件夹里。然后我写了下面的 html 页面,但看起来没有任何东西正常工作(空白 html 页面)。关于我错过了什么的任何线索?
非常感谢您的帮助,祝您星期天愉快。
最良好的祝愿, 洛朗
<!DOCTYPE html>
<html>
<head>
<link href="nouislider.min.css" rel="stylesheet">
<style>
#showcase {
margin: 0 20px;
text-align: center;
}
#range {
height: 300px;
margin: 0 auto 30px;
}
#value-span,
#value-input {
width: 50%;
float: left;
display: block;
text-align: center;
margin: 0;
}
</style>
</head>
<body>
<script src="nouislider.min.js"></script>
<script>
var range = document.getElementById('range');
noUiSlider.create(range, {
start: [ 20, 80 ], // Handle start position
step: 10, // Slider moves in increments of '10'
margin: 20, // Handles must be more than '20' apart
connect: true, // Display a colored bar between the handles
direction: 'rtl', // Put '0' at the bottom of the slider
orientation: 'vertical', // Orient the slider vertically
behaviour: 'tap-drag', // Move handle on tap, bar is draggable
range: { // Slider can select '0' to '100'
'min': 0,
'max': 100
},
pips: { // Show a scale with the slider
mode: 'steps',
density: 2
}
});
var valueInput = document.getElementById('value-input'),
valueSpan = document.getElementById('value-span');
// When the slider value changes, update the input and span
range.noUiSlider.on('update', function( values, handle ) {
if ( handle ) {
valueInput.value = values[handle];
} else {
valueSpan.innerHTML = values[handle];
}
});
// When the input changes, set the slider value
valueInput.addEventListener('change', function(){
range.noUiSlider.set([null, this.value]);
});
</script>
</body>
</html>
将脚本标签放在底部
在正文标签中插入“”
<!DOCTYPE html>
<html>
<head>
<link href="//cdn.bootcss.com/noUiSlider/8.5.1/nouislider.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/noUiSlider/8.5.1/nouislider.js"></script>
<style>
#showcase {
margin: 0 20px;
text-align: center;
}
#range {
height: 300px;
margin: 0 auto 30px;
}
#value-span,
#value-input {
width: 50%;
float: left;
display: block;
text-align: center;
margin: 0;
}
</style>
</head>
<body>
<div id="range"></div>
</body>
<script>
var range = document.getElementById('range');
noUiSlider.create(range, {
start: [ 20, 80 ], // Handle start position
step: 10, // Slider moves in increments of '10'
margin: 20, // Handles must be more than '20' apart
connect: true, // Display a colored bar between the handles
direction: 'rtl', // Put '0' at the bottom of the slider
orientation: 'vertical', // Orient the slider vertically
behaviour: 'tap-drag', // Move handle on tap, bar is draggable
range: { // Slider can select '0' to '100'
'min': 0,
'max': 100
},
pips: { // Show a scale with the slider
mode: 'steps',
density: 2
}
});
var valueInput = document.getElementById('value-input'),
valueSpan = document.getElementById('value-span');
// When the slider value changes, update the input and span
range.noUiSlider.on('update', function( values, handle ) {
if ( handle ) {
valueInput.value = values[handle];
} else {
valueSpan.innerHTML = values[handle];
}
});
// When the input changes, set the slider value
valueInput.addEventListener('change', function(){
range.noUiSlider.set([null, this.value]);
});
</script>
</html>
尝试将您的自定义 js 包装在分配给 window.onload
事件的函数内的 <script>
标记中。
<script>
window.onload = function() {
… // your custom code here
}
</script>
您的代码运行良好,您需要在 body 标记中添加一个 div。
<div id="range"></div>
至少那是我前进的动力:)