- Posts: 12881
- Thank you received: 3965
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Schieberegler mit Option "Keine Antwort" und/oder "Ich weiss nicht"
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
2 years 10 months ago #216557
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Schieberegler mit Option "Keine Antwort" und/oder "Ich weiss nicht"
Na, das ist doch schön.
Heißt also, Du nimmst nur einen Wert "keine Antwort"? Gut so.
Ich habe vielleicht noch eine kleine Verbesserung.
Wenn Du die Sliderskala von -1 bis 48 laufen lässt mit Anfangswert 0, hast Du eine einfache Relation zwischen abgespeichertem Wert und Stundenzahl, nämlich x / 4
Und auch einen sehr eindeutigen Wert (-1) für "keine Antwort".
Da das Tooltip-Array keine negativen Indizes zulässt, läuft dieses von 1 bis 49 und Du musst ein offset einbauen.
Nämlich hier
var i0=$(this).val();
i0=Number(i0)+1;
und hier
var i0=$(this).val();
i0=Number(i0)+1;
Und ich habe doch noch den Text für "keine Antwort" nach oben geschrieben.
Und im css die untere Beschriftung etwas geändert
Nur noch so als Nachschlag.
Jetzt noch ein letzter Hinweis:
Wenn Du Code hier darstellen willst, benutze die entsprechende Taste
Man kann auch die Syntaxhervorhebung bestimmen, indem man hinzufügt
Dann viel Erfolg bei Deiner Umfrage
Joffm
Heißt also, Du nimmst nur einen Wert "keine Antwort"? Gut so.
Ich habe vielleicht noch eine kleine Verbesserung.
Wenn Du die Sliderskala von -1 bis 48 laufen lässt mit Anfangswert 0, hast Du eine einfache Relation zwischen abgespeichertem Wert und Stundenzahl, nämlich x / 4
Und auch einen sehr eindeutigen Wert (-1) für "keine Antwort".
Da das Tooltip-Array keine negativen Indizes zulässt, läuft dieses von 1 bis 49 und Du musst ein offset einbauen.
Nämlich hier
var i0=$(this).val();
i0=Number(i0)+1;
und hier
var i0=$(this).val();
i0=Number(i0)+1;
Und ich habe doch noch den Text für "keine Antwort" nach oben geschrieben.
Und im css die untere Beschriftung etwas geändert
Nur noch so als Nachschlag.
Code:
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ // Identify this question var thisQuestion = $('#question{QID}'); // Define the text strings var tipTexts = { 0 : 'keine Antwort', 1: '0:00 Std.', 2: '0:15 Std.', 3: '0:30 Std.', 4: '0:45 Std.', 5: '1:00 Std.', 6: '1:15 Std.', 7: '1:30 Std.', 8: '1:45 Std.', 9: '2:00 Std.', 10: '2:15 Std.', 11: '2:30 Std.', 12: '2:45 Std.', 13: '3:00 Std.', 14: '3:15 Std.', 15: '3:30 Std.', 16: '3:45 Std.', 17: '4:00 Std.', 18: '4:15 Std.', 19: '4:30 Std.', 20: '4:45 Std.', 21: '5:00 Std.', 22: '5:15 Std.', 23: '5:30 Std.', 24: '5:45 Std.', 25: '6:00 Std.', 26: '6:15 Std.', 27: '6:30 Std.', 28: '6:45 Std.', 29: '7:00 Std.', 30: '7:15 Std.', 31: '7:30 Std.', 32: '7:45 Std.', 33: '8:00 Std.', 34: '8:15 Std.', 35: '8:30 Std.', 36: '8:45 Std.', 37: '9:00 Std.', 38: '9:15 Std.', 39: '9:30 Std.', 40: '9:45 Std.', 41: '10:00 Std.', 42: '10:15 Std.', 43: '10:30 Std.', 44: '10:45 Std.', 45: '11:00 Std.', 46: '11:15 Std.', 47: '11:30 Std.', 48: '11:45 Std.', 49: '12:00 Std.' }; $('input:text', thisQuestion).on('slideEnabled',function(){ var thisItem = $(this).closest('li'); // Insert custom tooltip $('.tooltip-inner', thisItem).addClass('tooltip-inner-1 hidden'); var i0=$(this).val(); i0=Number(i0)+1; $('.tooltip', thisItem).append('<div class="tooltip-inner tooltip-inner-2">'+tipTexts[i0]+'</div>'); // Listener on slider $(this).on('slide slideStop', function(event) { // Handle dynamic tooltip text var i1=$(this).val(); i1=Number(i1)+1; $('.tooltip-inner-2', thisItem).html(tipTexts[i1]); }); }); }); </script> <script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ var ticksArray = [ [0, ' 0:00 Std.'], [48, '12:00 Std.'], ]; var ticksArray2 = [ [-1, 'keine<br />Antwort'], ]; insertSliderTicks('{QID}', ticksArray); insertSliderTicks2('{QID}', ticksArray2); }); /* Insert Slider Tick Marks */ function insertSliderTicks(qID, ticksArray) { var thisQuestion = $('#question'+qID); $(thisQuestion).addClass('with-inserted-ticks'); $('input:text', thisQuestion).on('slideEnabled',function(){ var thisSlider = $(this); var thisItem = $(thisSlider).closest('li'); var thisMin = $('.slider-handle:eq(0)', thisItem).attr('aria-valuemin'); var thisMax = $('.slider-handle:eq(0)', thisItem).attr('aria-valuemax'); var thisRange = thisMax - thisMin; $.each(ticksArray, function(i, val) { var tickRelativePosition = val[0] - thisMin; var tickPercent = (tickRelativePosition/thisRange)*100; // Insert tick marks $('.slider-handle:eq(0)', thisItem).before('<div class="inserted-tick left-'+tickPercent+'" style="left: '+tickPercent+'%">\ <div class="tick-text">'+val[1]+'</div>\ </div>'); }); }); } /* Insert Slider Tick Marks */ function insertSliderTicks2(qID, ticksArray2) { var thisQuestion = $('#question'+qID); $(thisQuestion).addClass('with-inserted-ticks'); $('input:text', thisQuestion).on('slideEnabled',function(){ var thisSlider = $(this); var thisItem = $(thisSlider).closest('li'); var thisMin = $('.slider-handle:eq(0)', thisItem).attr('aria-valuemin'); var thisMax = $('.slider-handle:eq(0)', thisItem).attr('aria-valuemax'); var thisRange = thisMax - thisMin; $.each(ticksArray2, function(i, val) { var tickRelativePosition = val[0] - thisMin; var tickPercent = (tickRelativePosition/thisRange)*100; // Insert tick marks $('.slider-handle:eq(0)', thisItem).before('<div class="inserted-tick2 left-'+tickPercent+'" style="left: '+tickPercent+'%">\ <div class="tick-text">'+val[1]+'</div>\ </div>'); }); }); } </script>
Code:
<style type="text/css">/* Slider Tick Marks */ @media only screen and (min-width: 768px) { .with-inserted-ticks .slider-container { padding-right: 30px; padding-left: 30px; } } .with-inserted-ticks .slider-item { margin-bottom: 50px; } .with-inserted-ticks .slider-container .help-block { margin: 25px 0 0 -20px; width: 40px; text-align: center; } .with-inserted-ticks .slider-container .help-block.pull-right { margin: 25px -20px 0 0; } .inserted-tick, .inserted-tick2 { position: absolute; top: 50%; height: 20px; width: 4px; margin-top: -5px; margin-left: -1px; background-color: #DDDDDD; background-color: black; } .inserted-tick2.left-0, .inserted-tick2.left-100, .inserted-tick.left-0, .inserted-tick.left-100 { background-color: transparent; background-color: black; } .inserted-tick2 .tick-text { position: absolute; top: -250%; width: 100px; margin-left: -50px; color: #000000; text-align: center; } .inserted-tick .tick-text { position: absolute; top: 150%; width: 100px; margin-left: -20px; color: #000000; text-align: center; } .inserted-tick.left-0 .tick-text { margin-left: 0px; text-align: left; } .inserted-tick.left-100 .tick-text { margin-left: -100px; text-align: right; } } </style>
Jetzt noch ein letzter Hinweis:
Wenn Du Code hier darstellen willst, benutze die entsprechende Taste
Man kann auch die Syntaxhervorhebung bestimmen, indem man hinzufügt
[code type=javascript]
oder
[code type=css]
Dann viel Erfolg bei Deiner Umfrage
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 10 months ago #216558
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Schieberegler mit Option "Keine Antwort" und/oder "Ich weiss nicht"
Man soll eben nie kopieren
Muss natürlich heißen
Nämlich hier
var i0=$(this).val();
i0=Number(i0)+1;
und hier
var i1=$(this).val();
i1=Number(i1)+1;
Muss natürlich heißen
Nämlich hier
var i0=$(this).val();
i0=Number(i0)+1;
und hier
var i1=$(this).val();
i1=Number(i1)+1;
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- kidim_vb
- Topic Author
- Offline
- New Member
Less
More
- Posts: 17
- Thank you received: 0
2 years 10 months ago #216653
by kidim_vb
Replied by kidim_vb on topic Schieberegler mit Option "Keine Antwort" und/oder "Ich weiss nicht"
Das mit -1 als "Keine Antwort" ist ja toll. Hatte ich auch versucht, doch wie Du schreibst, lässt das Tooltip-Array keine negativen Zahlen zu, weshalb ich daran gescheitert bin. Aber ja, so scheint es gut zu klappen. Merci!
Und: Gut zu wissen das mit der Code-Darstellung - danke!
Und: Gut zu wissen das mit der Code-Darstellung - danke!
The topic has been locked.
Moderators: Joffm