ползунок type="range и добавление значение в
Доброго времени суток! столкнулся с проблемой, имеются к примеру продукция с категориями, по ней идет фильтрация по категориям без перезагрузки страницы! хочу добавить ползунок для фильтрации по году... скрипт фильтрации выполняется
<li class="filter-item" data-filter=".2015">2015</li> проблема в следующем, не могу поменять значение Код:
data-filter=".2015" Код:
document.querySelector("#volume").value = vol; <input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate(value)"> <li id=volume class="filter-item" data-filter=".2015">2015</li> <script> function outputUpdate(vol) { document.querySelector("#volume").value = vol; } </script>'; Увы с программированием не заладилось, надеюсь на вашу помощь! Заранее спасибо! |
wildil,
document.querySelector(".filter-item").dataset.filter= "."+vol; document.querySelector(".filter-item").innerHTML = vol; https://learn.javascript.ru/attribut...трибуты |
Благодарю! Знания сила!:)
|
возникает вопрос о возможности фильтра выбора с 2ух сторон, мол с 2006 по 2010 год...
я так понял нужно использовать jquery Ui slider. Правда в голове не укладывается, как сделать расчет <li id=volume class="filter-item" data-filter="">2006-2010</li> чтобы в data-filter="" поместить .2006, .2006, .2008, .2009, .2010 Если сможете помочь соображениями на этот счет, буду благодарен! |
wildil,
выбор за вами можно один jquery Ui slider, можно два type=range; |
type range выбор диапазона лет
wildil,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <p>.2015</p> <input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate()"> <input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate()"> <li id=volume class="filter-item" data-filter=".2015">2015</li> <script> var p = document.querySelector("p") function outputUpdate(vol) { var str = [], inp = document.querySelectorAll("[type='range']"); min = inp[0].value, max = inp[1].value; if (min > max) { inp[1].value = min; max = min }; for (var i = min; i <= max; i++) { str.push(i) } p.innerHTML = "." + str.join(",."); document.querySelector(".filter-item").dataset.filter = "." + str.join(",."); document.querySelector(".filter-item").innerHTML = min + ((min == max) ? "" : (" - " + max)); } </script> </body> </html> |
Всё таки с ... по удобнее двумя выпадающим меню (select)
Посколь скриптом мон генерить(обрезать) все года младше или равного году 'с' |
хочется все же фильтр, интуитивно и современно)
http://jqueryui.com/slider/#range разбираюсь сейчас этим вариантом! Цитата:
|
wildil,
по вашей ссылке готовый код -- как получить дата -- возьмите из моего кода. |
jqueryui slider диапазон лет
wildil,
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Slider - Range slider</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <style type="text/css"> #slider-range{ margin:20px; width:500px; height:5px; } .ui-slider-handle{ border-radius:50%; position:relative; font-size:14px; display:block; } .ui-slider-horizontal .ui-slider-handle{ top:0.5em; background:transparent; border-radius:0%; width:0; height:0; border-top:none; text-decoration:none; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:14px solid red; } .ui-slider-handle:focus{ outline:0; } .ui-slider-horizontal .ui-slider-handle:last-of-type{ background:transparent; border-bottom:none; border-top:14px solid red; top:-1.2em; } </style> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <script> $(function() { $("#slider-range").slider({ range: true, min: 2005, max: 2015, values: [2005, 2015], slide: function(event, ui) { var min = ui.values[0], max = ui.values[1], str = []; for (var i = min; i <= max; i++) str.push(i); str = "." + str.join(",."); $("#volume").html(min + (min == max ? "" : " - " + max)).data({ "filter": str }); $("p").html(str) //для контроля } }); $("#volume").html($("#slider-range").slider("values", 0) + " - " + $("#slider-range").slider("values", 1)) }); </script> </head> <body> <p>.2015</p> <li id=volume class="filter-item" data-filter=".2015">2015</li> <div id="slider-range"></div> </body> </html> |
Часовой пояс GMT +3, время: 20:37. |