"Product chooser / selector"
Bootstrap 3.1.0 Snippet by sharomet

<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <h2>Normal</h2> <div class="row form-group product-chooser"> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item selected"> <img src="http://renswijnmalen.nl/bootstrap/desktop_mobile.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Mobile and Desktop"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Mobile and Desktop</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="mobile_desktop" checked="checked"> </div> <div class="clear"></div> </div> </div> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item"> <img src="http://renswijnmalen.nl/bootstrap/desktop.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Desktop"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Desktop</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="desktop"> </div> <div class="clear"></div> </div> </div> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item"> <img src="http://renswijnmalen.nl/bootstrap/mobile.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Mobile"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Mobile</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="mobile"> </div> <div class="clear"></div> </div> </div> </div> </div> <div class="container"> <h2>Disabled</h2> <div class="row form-group product-chooser disabled"> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item"> <img src="http://renswijnmalen.nl/bootstrap/desktop_mobile.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Mobile and Desktop"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Mobile and Desktop</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="mobile_desktop" checked="checked"> </div> <div class="clear"></div> </div> </div> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item selected"> <img src="http://renswijnmalen.nl/bootstrap/desktop.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Desktop"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Desktop</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="desktop"> </div> <div class="clear"></div> </div> </div> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <div class="product-chooser-item"> <img src="http://renswijnmalen.nl/bootstrap/mobile.png" class="img-rounded col-xs-4 col-sm-4 col-md-12 col-lg-12" alt="Mobile"> <div class="col-xs-8 col-sm-8 col-md-12 col-lg-12"> <span class="title">Mobile</span> <span class="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</span> <input type="radio" name="product" value="mobile"> </div> <div class="clear"></div> </div> </div> </div> </div>
div.clear { clear: both; } div.product-chooser{ } div.product-chooser.disabled div.product-chooser-item { zoom: 1; filter: alpha(opacity=60); opacity: 0.6; cursor: default; } div.product-chooser div.product-chooser-item{ padding: 11px; border-radius: 6px; cursor: pointer; position: relative; border: 1px solid #efefef; margin-bottom: 10px; margin-left: 10px; margin-right: 10x; } div.product-chooser div.product-chooser-item.selected{ border: 4px solid #428bca; background: #efefef; padding: 8px; filter: alpha(opacity=100); opacity: 1; } div.product-chooser div.product-chooser-item img{ padding: 0; } div.product-chooser div.product-chooser-item span.title{ display: block; margin: 10px 0 5px 0; font-weight: bold; font-size: 12px; } div.product-chooser div.product-chooser-item span.description{ font-size: 12px; } div.product-chooser div.product-chooser-item input{ position: absolute; left: 0; top: 0; visibility:hidden; }
$(function(){ $('div.product-chooser').not('.disabled').find('div.product-chooser-item').on('click', function(){ $(this).parent().parent().find('div.product-chooser-item').removeClass('selected'); $(this).addClass('selected'); $(this).find('input[type="radio"]').prop("checked", true); }); });

Related: See More


Questions / Comments: