Commit 61ca53c9 authored by Valentin Hervieu's avatar Valentin Hervieu

Fixes #108. Also add ng-show example showing the usage of rzSliderForceRender

parent 05cbdc86
{ {
"name": "angularjs-slider", "name": "angularjs-slider",
"version": "0.1.27", "version": "0.1.28",
"homepage": "https://github.com/rzajac/angularjs-slider", "homepage": "https://github.com/rzajac/angularjs-slider",
"authors": [ "authors": [
"Rafal Zajac <rzajac@gmail.com>", "Rafal Zajac <rzajac@gmail.com>",
......
...@@ -2,93 +2,96 @@ ...@@ -2,93 +2,96 @@
<html ng-app="plunker"> <html ng-app="plunker">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>AngularJS Touch Slider</title> <title>AngularJS Touch Slider</title>
<link rel="stylesheet" href="demo.css" /> <link rel="stylesheet" href="demo.css"/>
<link rel="stylesheet" href="../dist/rzslider.css" /> <link rel="stylesheet" href="../dist/rzslider.css"/>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700' rel='stylesheet' type='text/css'>
</head> </head>
<body ng-controller="MainCtrl"> <body ng-controller="MainCtrl">
<div class="wrapper"> <div class="wrapper">
<header> <header>
<h1>AngularJS Touch Slider</h1> <h1>AngularJS Touch Slider</h1>
</header> </header>
<article> <article>
<h2>Min/max slider example</h2> <h2>Min/max slider example</h2>
Value: <pre>{{ slider_data | json }}</pre> Value:
<p>Value linked on change: {{ otherData.value }}</p> <pre>{{ slider_data | json }}</pre>
<p>Value linked on change: {{ otherData.value }}</p>
<rzslider
rz-slider-floor="0.5" <rzslider
rz-slider-ceil="10.5" rz-slider-floor="0.5"
rz-slider-step="0.3" rz-slider-ceil="10.5"
rz-slider-precision="1" rz-slider-step="0.3"
rz-slider-model="slider_data.value" rz-slider-precision="1"
rz-slider-on-change="onChange()"></rzslider> rz-slider-model="slider_data.value"
</article> rz-slider-on-change="onChange()"></rzslider>
</article>
<article>
<h2>Min/max slider example</h2> <article>
Value: <pre>{{ priceSlider | json }}</pre> <h2>Min/max slider example</h2>
Value:
<input type="text" ng-model="priceSlider.min"/><br/> <pre>{{ priceSlider | json }}</pre>
<input type="text" ng-model="priceSlider.max"/><br/>
<input type="text" ng-model="priceSlider.min"/><br/>
<rzslider <input type="text" ng-model="priceSlider.max"/><br/>
<rzslider
rz-slider-floor="priceSlider.floor" rz-slider-floor="priceSlider.floor"
rz-slider-ceil="priceSlider.ceil" rz-slider-ceil="priceSlider.ceil"
rz-slider-model="priceSlider.min" rz-slider-model="priceSlider.min"
rz-slider-high="priceSlider.max" rz-slider-high="priceSlider.max"
rz-slider-step="6" rz-slider-step="6"
rz-slider-tpl-url="rzSliderTpl.html"></rzslider> rz-slider-tpl-url="rzSliderTpl.html"></rzslider>
</article> </article>
<article> <article>
<h2>Currency slider example</h2> <h2>Currency slider example</h2>
Value: {{ priceSlider2 | json }} Value: {{ priceSlider2 | json }}
<rzslider <rzslider
rz-slider-floor="0" rz-slider-floor="0"
rz-slider-ceil="450" rz-slider-ceil="450"
rz-slider-model="priceSlider2" rz-slider-model="priceSlider2"
rz-slider-translate="translate" rz-slider-translate="translate"
rz-slider-tpl-url="rzSliderTpl.html"></rzslider> rz-slider-tpl-url="rzSliderTpl.html"></rzslider>
</article> </article>
<article> <article>
<h2>One value slider example</h2> <h2>One value slider example</h2>
Value: {{ priceSlider3 | json }} Value: {{ priceSlider3 | json }}
<rzslider rz-slider-model="priceSlider3" <rzslider rz-slider-model="priceSlider3"
rz-slider-floor="50" rz-slider-floor="50"
rz-slider-ceil="450" rz-slider-ceil="450"
rz-slider-always-show-bar="true" rz-slider-always-show-bar="true"
rz-slider-tpl-url="rzSliderTpl.html"></rzslider> rz-slider-tpl-url="rzSliderTpl.html"></rzslider>
</article> </article>
<article> <article>
<h2>Alphabet slider example</h2> <h2>Alphabet slider example</h2>
Value: {{ alphabetTranslate(letter) }} Value: {{ alphabetTranslate(letter) }}
<rzslider <rzslider
rz-slider-floor="0" rz-slider-floor="0"
rz-slider-ceil="letterMax" rz-slider-ceil="letterMax"
rz-slider-model="letter" rz-slider-model="letter"
rz-slider-translate="alphabetTranslate" rz-slider-translate="alphabetTranslate"
rz-slider-tpl-url="rzSliderTpl.html"></rzslider> rz-slider-tpl-url="rzSliderTpl.html"></rzslider>
</article> </article>
<article> <article>
<h2>Draggable range example</h2> <h2>Draggable range example</h2>
Value: <pre>{{ priceSlider | json }}</pre> Value:
<pre>{{ priceSlider | json }}</pre>
<input type="text" ng-model="priceSlider.min"/><br/> <input type="text" ng-model="priceSlider.min"/><br/>
<input type="text" ng-model="priceSlider.max"/><br/> <input type="text" ng-model="priceSlider.max"/><br/>
<rzslider <rzslider
rz-slider-draggable-range="true" rz-slider-draggable-range="true"
rz-slider-floor="priceSlider.floor" rz-slider-floor="priceSlider.floor"
rz-slider-ceil="priceSlider.ceil" rz-slider-ceil="priceSlider.ceil"
...@@ -96,9 +99,17 @@ ...@@ -96,9 +99,17 @@
rz-slider-high="priceSlider.max" rz-slider-high="priceSlider.max"
rz-slider-step="5" rz-slider-step="5"
rz-slider-tpl-url="rzSliderTpl.html"></rzslider> rz-slider-tpl-url="rzSliderTpl.html"></rzslider>
</article> </article>
<article>
<h2>Toggle slider example</h2>
<button ng-click="toggle()">Show</button>
<div ng-show="visible">
<rzslider rz-slider-model="toggleSlider.value" rz-slider-floor="toggleSlider.floor" rz-slider-ceil="toggleSlider.ceil"></rzslider>
</div>
</article>
</div> </div>
</body> </body>
<script src="../bower_components/angular/angular.min.js"></script> <script src="../bower_components/angular/angular.min.js"></script>
...@@ -106,8 +117,7 @@ ...@@ -106,8 +117,7 @@
<script> <script>
var app = angular.module('plunker', ['rzModule']); var app = angular.module('plunker', ['rzModule']);
app.controller('MainCtrl', function($scope) app.controller('MainCtrl', function($scope, $timeout) {
{
$scope.priceSlider = { $scope.priceSlider = {
min: 100, min: 100,
max: 400, max: 400,
...@@ -118,16 +128,14 @@ ...@@ -118,16 +128,14 @@
$scope.priceSlider2 = 150; $scope.priceSlider2 = 150;
$scope.priceSlider3 = 250; $scope.priceSlider3 = 250;
$scope.translate = function(value) $scope.translate = function(value) {
{
return '$' + value; return '$' + value;
}; };
var alphabetArray = 'abcdefghijklmnopqrstuvwxyz'.split(''); var alphabetArray = 'abcdefghijklmnopqrstuvwxyz'.split('');
$scope.letter = 5; $scope.letter = 5;
$scope.letterMax = alphabetArray.length - 1; $scope.letterMax = alphabetArray.length - 1;
$scope.alphabetTranslate = function(value) $scope.alphabetTranslate = function(value) {
{
return alphabetArray[value].toUpperCase(); return alphabetArray[value].toUpperCase();
}; };
...@@ -135,8 +143,23 @@ ...@@ -135,8 +143,23 @@
$scope.otherData = {value: 10}; $scope.otherData = {value: 10};
$scope.onChange = function() { $scope.onChange = function() {
console.info('changed', $scope.slider_data.value); console.info('changed', $scope.slider_data.value);
$scope.otherData.value = $scope.slider_data.value * 10; $scope.otherData.value = $scope.slider_data.value * 10;
};
$scope.visible = false;
$scope.toggle = function() {
$scope.visible = !$scope.visible;
$timeout(function() {
$scope.$broadcast('rzSliderForceRender');
});
};
$scope.toggleSlider = {
value: 0,
ceil: 500,
floor: 0
}; };
}); });
</script> </script>
......
/*! jusas-angularjs-slider - v0.1.27 - (c) Rafal Zajac <rzajac@gmail.com>, Jussi Saarivirta <jusasi@gmail.com>, Angelin Sirbu <angelin.sirbu@gmail.com>, https://github.com/rzajac/angularjs-slider.git - 2015-08-25 */ /*! jusas-angularjs-slider - v0.1.28 - (c) Rafal Zajac <rzajac@gmail.com>, Jussi Saarivirta <jusasi@gmail.com>, Angelin Sirbu <angelin.sirbu@gmail.com>, https://github.com/rzajac/angularjs-slider.git - 2015-09-08 */
rzslider{position:relative;display:inline-block;width:100%;height:4px;margin:30px 0 15px 0;vertical-align:middle}rzslider span{position:absolute;display:inline-block;white-space:nowrap}rzslider span.rz-base{width:100%;height:100%;padding:0}rzslider span.rz-bar-wrapper{left:0;width:100%;height:32px;padding-top:16px;margin-top:-16px;box-sizing:border-box}rzslider span.rz-bar{left:0;z-index:0;width:100%;height:4px;background:#d8e0f3;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}rzslider span.rz-bar.rz-selection{z-index:1;background:#0db9f0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}rzslider span.rz-pointer{top:-14px;z-index:2;width:32px;height:32px;cursor:pointer;background-color:#0db9f0;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}rzslider span.rz-pointer:after{position:absolute;top:12px;left:12px;width:8px;height:8px;background:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;content:''}rzslider span.rz-pointer:hover:after{background-color:#fff}rzslider span.rz-pointer.rz-active:after{background-color:#451aff}rzslider span.rz-bubble{top:-32px;padding:1px 3px;color:#55637d;cursor:default}rzslider span.rz-bubble.rz-selection{top:16px}rzslider span.rz-bubble.rz-limit{color:#55637d} rzslider{position:relative;display:inline-block;width:100%;height:4px;margin:30px 0 15px 0;vertical-align:middle}rzslider span{position:absolute;display:inline-block;white-space:nowrap}rzslider span.rz-base{width:100%;height:100%;padding:0}rzslider span.rz-bar-wrapper{left:0;width:100%;height:32px;padding-top:16px;margin-top:-16px;box-sizing:border-box}rzslider span.rz-bar{left:0;z-index:0;width:100%;height:4px;background:#d8e0f3;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}rzslider span.rz-bar.rz-selection{z-index:1;background:#0db9f0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}rzslider span.rz-pointer{top:-14px;z-index:2;width:32px;height:32px;cursor:pointer;background-color:#0db9f0;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}rzslider span.rz-pointer:after{position:absolute;top:12px;left:12px;width:8px;height:8px;background:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;content:''}rzslider span.rz-pointer:hover:after{background-color:#fff}rzslider span.rz-pointer.rz-active:after{background-color:#451aff}rzslider span.rz-bubble{top:-32px;padding:1px 3px;color:#55637d;cursor:default}rzslider span.rz-bubble.rz-selection{top:16px}rzslider span.rz-bubble.rz-limit{color:#55637d}
\ No newline at end of file
This diff is collapsed.
{ {
"name": "jusas-angularjs-slider", "name": "jusas-angularjs-slider",
"version": "0.1.27", "version": "0.1.28",
"description": "AngularJS slider directive with no external dependencies. Mobile friendly!.", "description": "AngularJS slider directive with no external dependencies. Mobile friendly!.",
"main": "rzslider.js", "main": "rzslider.js",
"repository": { "repository": {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* (c) Rafal Zajac <rzajac@gmail.com> * (c) Rafal Zajac <rzajac@gmail.com>
* http://github.com/rzajac/angularjs-slider * http://github.com/rzajac/angularjs-slider
* *
* Version: v0.1.27 * Version: v0.1.28
* *
* Licensed under the MIT license * Licensed under the MIT license
*/ */
...@@ -369,9 +369,9 @@ function throttle(func, wait, options) { ...@@ -369,9 +369,9 @@ function throttle(func, wait, options) {
resetSlider: function() resetSlider: function()
{ {
this.setMinAndMax(); this.setMinAndMax();
this.calcViewDimensions();
this.updateCeilLab(); this.updateCeilLab();
this.updateFloorLab(); this.updateFloorLab();
this.calcViewDimensions();
}, },
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment