2015-10-19 9 views
1

То, что я пытаюсь достичь, заключается в том, что когда кто-то нажимает на переключатель, кнопка перемещается влево, спрятав другой переключатель, тем самым создавая складной эффект.Как переместить выбранную радиокнопку в левую сторону

Я пробовал это с помощью свойства css float: left и его перемещения, но может видеть только прямоугольник. Вот мой код

Html

<form> 
    <group class="inline-radio"> 
    <div> 
     <input id="opt1" type="radio" name="title"> 
     <label>opt1</label> 
    </div> 
    <div> 
     <input id="opt2" type="radio" name="title"> 
     <label>opt2</label> 
    </div> 
    <div> 
     <input id="opt3" type="radio" name="title"> 
     <label>opt3</label> 
    </div> 
    <div> 
     <input id="opt4" type="radio" name="title"> 
     <label>opt4</label> 
    </div> 
    <div> 
     <input id="opt5" type="radio" name="title"> 
     <label>others</label> 
    </div> 
    </group> 

</form> 

Javascript

//for toggling 
var hid = false; 

$("group.inline-radio").click(function() { 
    if (hid == false) { 

    $('group.inline-radio').find('input[type="radio"]').not(':checked').hide().siblings('label').hide(); 

    hid = true; 
    return; 
    } else { 
    $('group.inline-radio').find('input[type="radio"]').not(':checked').show().siblings('label').show(); 

    hid = false; 
    } 

}); 

Вот код в codepen http://codepen.io/flyingboy007/pen/ojoVWe

+1

Это потому, что вам нужно будет, чтобы скрыть 'div' контейнер не ярлык. Хотя я все еще немного неясен относительно того, что вы хотели бы, чтобы ваш желаемый эффект был – Adjit

+0

Согласовано с @Adjit: желаемое поведение не ясно. –

+0

@ Adjit.Sorry, что его непонятно. Что я ищу - это складной эффект. (Например, если кто-то щелкнет по 3-му радиоблоку, он скроет все остальные радиобунки и переместится на место первого). Я уточню вопрос с этим. – Abhilash

ответ

3

Изменить селектор Div в вашем CSS для этого:

div { 
position: relative; 
width: 20%; 
float:left; 
} 

И изменить JavaScript для этого:

var hid = false; 

$("group.inline-radio").click(function() { 
    if (hid == false) { 

    $('group.inline-radio').find('input[type="radio"]').not(':checked').parent().hide(); 

    hid = true; 
    return; 
    } else { 
    $('group.inline-radio').find('input[type="radio"]').not(':checked').parent().show(); 

    hid = false; 
    } 

}); 

Codepen: http://codepen.io/anon/pen/ojpNVq

+0

Это то, чего вы пытались достичь? – Rafael

+0

да .. Благодарю вас. – Abhilash

+0

Добро пожаловать :) – Rafael

1

Вам нужно скрыть DIV Обертывания непроверенных элементов радио. Тогда вам не нужно беспокоиться о ярлыках, потому что они также находятся внутри родительского div.

http://codepen.io/anon/pen/LpeYod

var hid = false; 

$("group.inline-radio").click(function() { 
    if (hid == false) { 

    $('group.inline-radio').find('input[type="radio"]').not(':checked').parent().hide(); 

    hid = true; 
    return; 
    } else { 
    $('group.inline-radio').find('input[type="radio"]').not(':checked').parent().show(); 

    hid = false; 
    } 

}); 

Кроме того, если вы не хотите, чтобы выбранный DIV, чтобы заполнить весь элемент, то вам нужно установить определенные ширины на них.

+0

Спасибо за вашу поддержку, это работает так же. – Abhilash

Смежные вопросы