Rearranging buttons in radio-list question (top-r, top-l, bottom-r, bottom-l)

More
1 month 2 weeks ago - 1 month 2 weeks ago #192617 by Kristoss
Hi Guys,

LS: 3.15.1+181017 / vanilla template / the survey will be displayed only on pc in chrome website (no mobile or different browsers)


I'm using radio-button-list question type. I would like to arrange this question in the following way:

- on the center of screen i would like to present an image

- on each corner of the screen (top-left, top-right, bottom-left, bottom-right) i would like to present possible answer option (buttons with labels). Explanatory figure in the attachment.

I tried to modify the ".radio-list" from "theme.css" via theme editor but with no effect.

My skill with html/css can be described as "monkey see, monkey do" so please take this into account while answering my question.
Attachments:
Last edit: 1 month 2 weeks ago by Kristoss.

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago - 1 month 2 weeks ago #192619 by tpartner
Can you attach a small sample survey (.lss file) containing only that question?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com
Last edit: 1 month 2 weeks ago by tpartner.

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192623 by Kristoss
Thank you for quick reaction.

Sample survey in the attachment.
Attachments:

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago - 1 month 2 weeks ago #192625 by tpartner
You will need do do it with two steps...

Move the buttons into the question text element via JavaScript:

<script type="text/javascript" charset="utf-8">
 
	$(document).on('ready pjax:scriptcomplete',function(){
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Move the answer buttons into the question text element
		$('.answer-container', thisQuestion).removeClass('col-xs-12').appendTo($('.ls-label-question', thisQuestion));
 
		// Loop through the answer buttons
		$('.bootstrap-buttons-div', thisQuestion).each(function(i) {
 
			// Assign classes for styling
			$(this).addClass('item-'+(i+1));
		});
    });
</script>

Add some styles like this:

<style type="text/css">
 
	#question{QID} .ls-label-question {
		position: relative;
		margin: 50px auto;
		width: 640px;
	}
 
	#question{QID} .ls-label-question .answers-list {
		padding: 0;
	}
 
	#question{QID} .ls-label-question .bootstrap-buttons-div {
		position: absolute;
		width: 200px;
	}
 
	#question{QID} .ls-label-question .bootstrap-buttons-div.item-1 {
		top: 20px;
		left: -140px;
	}
 
	#question{QID} .ls-label-question .bootstrap-buttons-div.item-2 {
		top: 20px;
		right: -140px;
	}
 
	#question{QID} .ls-label-question .bootstrap-buttons-div.item-3 {
		bottom: 20px;
		left: -140px;
	}
 
	#question{QID} .ls-label-question .bootstrap-buttons-div.item-4 {
		bottom: 20px;
		right: -140px;
	}
</style>



Here is your sample survey back with those changes:

File Attachment:

File Name: limesurvey...1321.lss
File Size:19 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com
Attachments:
Last edit: 1 month 2 weeks ago by tpartner.
The following user(s) said Thank You: DenisChenu, gabrieljenik

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192635 by Kristoss
Thank you for help but unfortunately I cannot reproduce your output. I'm adding my screenshot - this is how your survey is displayed on my setting.
Attachments:

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192636 by tpartner
Can you activate the sample survey and give us a link?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192637 by Kristoss
Yes. I see the source code in the question but the output is regular as for button-list question.

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192665 by tpartner
Without a link to a live survey I cannot see if there are and JavaScript errors or other issues.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago #192673 by Kristoss

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago - 1 month 2 weeks ago #192691 by tpartner
Hmm...that older version uses a different HTML structure for the button question. I cannot test directly but try replacing the script and styles in the question text with these:

<script type="text/javascript" charset="utf-8">
 
	$(document).on('ready pjax:scriptcomplete',function(){
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Move the answer buttons into the question text element
		$('.answer-container', thisQuestion).removeClass('col-xs-12').appendTo($('.ls-label-question', thisQuestion));
 
		// Loop through the answer buttons
		$('.ls-label-question .button-item', thisQuestion).each(function(i) {
 
			// Assign classes for styling
			$(this).addClass('item-'+(i+1));
		});
    });
</script>

<style type="text/css">
 
	#question{QID} .ls-label-question {
		position: relative;
		margin: 50px auto;
		width: 640px;
	}
 
	#question{QID} .ls-label-question .answers-list {
		padding: 0;
	}
 
	#question{QID} .ls-label-question .answers-list .btn-group {
		display: block;
		position: static;
	}
 
	#question{QID} .ls-label-question .button-item {
		display: block;
		position: absolute;
		width: 200px;
		border-radius: 6px;
	}
 
	#question{QID} .ls-label-question .button-item.item-1 {
		top: 20px;
		left: -140px;
	}
 
	#question{QID} .ls-label-question .button-item.item-2 {
		top: 20px;
		right: -140px;
	}
 
	#question{QID} .ls-label-question .button-item.item-3 {
		bottom: 20px;
		left: -140px;
	}
 
	#question{QID} .ls-label-question .button-item.item-4 {
		bottom: 20px;
		right: -140px;
	}
</style>

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com
Last edit: 1 month 2 weeks ago by tpartner.

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!