UNPKG

jqwidgets-scripts-custom

Version:

jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.

161 lines (138 loc) 6.42 kB
<!DOCTYPE html> <html lang="en"> <head> <title id='Description'>Slider Custom Element DefaultFunctionality</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> <meta name="description" content="This is an example of the default functionalities in Custom Element Slider." /> <link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" /> <link rel="stylesheet" href="../../../styles/demos.css" type="text/css" /> <script type="text/javascript" src="../../../scripts/webcomponents-lite.min.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxcore.elements.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxslider.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxcheckbox.js"></script> <script type="text/javascript" src="../../../scripts/demos.js"></script> <style type="text/css"> .colorBlock { border: 1px solid #aaa; width: 200px; height: 200px; float: right; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } .colorLabel { padding: 6px; } </style> <script> var fixHex = function (hex) { return (hex.length < 2) ? '0' + hex : hex; }; var getTextElement = function (color) { var nThreshold = 105; var bgDelta = (color.r * 0.299) + (color.g * 0.587) + (color.b * 0.114); var foreColor = (255 - bgDelta < nThreshold) ? 'Black' : 'White'; return foreColor; }; JQXElements.settings['SliderSettings'] = { showTickLabels: true, tooltip: true, mode: 'fixed', min: 0, max: 255, ticksFrequency: 25.5, value: 0, step: 25.5, tickLabelFormatFunction: function (value) { if (value == 0) return value; if (value == 255) return value; return ''; } }; JQXElements.settings['SliderBlueSettings'] = { showTickLabels: true, tooltip: true, mode: 'fixed', min: 0, max: 255, ticksFrequency: 25.5, value: 255, step: 25.5, tickLabelFormatFunction: function (value) { if (value == 0) return value; if (value == 255) return value; return ''; } }; JQXElements.settings['checkBoxSettings'] = { checked: false }; window.onload = function () { var mySliders = document.querySelectorAll('jqx-slider'); var myCheckBox = document.querySelector('jqx-check-box'); var myLabel = document.querySelector('#colorLabel'); var myBlock = document.querySelector('#colorBlock'); myLabel.style.color = '#ffffff'; myBlock.style.backgroundColor = '#0000FF'; var setColor = function () { var red = fixHex(Math.round(mySliders[0].val()).toString(16)); var green = fixHex(Math.round(mySliders[1].val()).toString(16)); var blue = fixHex(Math.round(mySliders[2].val()).toString(16)); document.getElementById('colorBlock').style.backgroundColor = '#' + red + green + blue; document.getElementById('colorLabel').innerHTML = ('#' + red + green + blue).toUpperCase(); var color = getTextElement({ r: parseInt(red, 16), g: parseInt(green, 16), b: parseInt(blue, 16) }); document.getElementById('colorLabel').style.color = color; }; mySliders[0].addEventListener('change', function (event) { setColor(); }); mySliders[1].addEventListener('change', function (event) { setColor(); }); mySliders[2].addEventListener('change', function (event) { setColor(); }); myCheckBox.addEventListener('change', function (event) { var checked = event.args.checked; var value = 'default'; if (!checked) { value = 'fixed'; } mySliders[0].mode = value; mySliders[1].mode = value; mySliders[2].mode = value; }); }; </script> </head> <body> <div class="example-description"> Custom element Slider represents a flexible Slider that lets the user select from a range of values by moving a thumb along a track. The widget is completely customizable in terms of appearance and offers numerous configuration options like mouse wheel and keyboard support, smooth or step-based slider and support for range sliders. </div> <div style="width: 550px"> <div style="height: 180px;"> <div style="float: left"> <span style="font-style: italic;">Red</span> <jqx-slider settings='SliderSettings' id="redSlider"></jqx-slider> <span style="font-style: italic;">Green</span> <jqx-slider settings='SliderSettings'></jqx-slider> <span style="font-style: italic;">Blue</span> <jqx-slider settings='SliderBlueSettings'></jqx-slider> </div> <div class="colorBlock jqx-rc-all" id="colorBlock"> <div class="colorLabel" id="colorLabel"> #0000FF </div> </div> </div> <jqx-check-box settings="checkBoxSettings">Smooth Thumb Drag</jqx-check-box> </div> </body> </html>