가격범위 슬라이드

가격범위 슬라이드

QA

가격범위 슬라이드

답변 1

본문

http://happycgi.com/program/detail.php?number=17178
위 링크를 사용하여 가격범위 슬라이드를 만드려고 하는데

혹시 가격이 나오는게 이런식으로 따라다닐 수 있는지요?

3552902211_1637039220.8171.png

 


<!DOCTYPE HTML>
<html lang="ko">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport"
        content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
    <title> jQuery </title>
    <script src="pay.min.js"></script>
    <script src="jquery-ui.js"></script>
 
    <!-- 스타일 -->
    <style type="text/css">
        .slider-price-wrap {
            margin: 0 auto;
            width: 100%;
        }
 
        .slider-price {
            position: relative;
            margin: 0 auto;
            width: 100%;
            height: 4px;
            background: #ccc;
        }
 
        .slider-price .ui-slider-handle {
            position: absolute;
            top: -5px;
            width: 10px;
            height: 10px;
            margin-left: -5px;
            border-radius: 50%;
            border: 1px solid #007C4F;
            background: #fff;
            box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
            outline: none;
        }
 
        .slider-price .ui-slider-range {
            position: absolute;
            height: 4px;
            background: #007C4F;
        }
 
        .slider-price-wrap .slider-result {
            margin-top: 20px;
            width: 240px;
            font-size: 14px;
        }
 
        .slider-price-wrap .slider-result:after {
            content: "";
            display: block;
            clear: both;
        }
 
        .slider-price-wrap .slider-result .left {
            float: left;
            width: 50%;
        }
 
        .slider-price-wrap .slider-result .right {
            float: right;
            width: 50%;
            text-align: right;
        }
 
        .slider-price-wrap .slider-result .num {
            font-size: 14px;
            color: #000000;
            width: inherit;
        }
 
        .slider-price-wrap .slider-result .right .num {
            text-align: right;
        }
 
   
    </style>
    <!-- // 스타일 -->
 
</head>
 
<body>
    <div id="wrap">
 
        <div class="slider-price-wrap">
            <div id="priceRangeSet" class="slider-price"></div>
            <div class="slider-result">
                <p class="left">
                    <input type="text" class="num" id="priceRangeMin" name="priceRangeMin" title="가격 최소값(숫자만 입력 가능)"
                        style="ime-mode:disabled;" onkeypress="txtOnlyNum(event)"
                        onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" />
                </p>
                <p class="right">
                    <input type="text" class="num" id="priceRangeMax" name="priceRangeMax" title="가격 최대값 (숫자만 입력 가능)"
                        style="ime-mode:disabled;" onkeypress="txtOnlyNum(event)"
                        onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" />
                </p>
            </div>
        </div><!-- // slider-price-wrap -->
 
    </div>
    <!-- // wrap -->
 
    <!-- 스크립트 -->
    <script>
        var numberSetComma = function (val) {
            while (/(\d+)(\d{3})/.test(val.toString())) {
                val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
            }
            return val;
        };
        var numberDelComma = function (val) {
            return parseInt(val.replace(/,/g, ""));
        };
        var txtOnlyNum = function (e) {
            var keycode = (window.netscape) ? e.which : e.keyCode;
            if (!(keycode == 0 || keycode == 8 || (keycode >= 48 && keycode <= 57))) {
                if (window.netscape) {
                    e.preventDefault();
                } else {
                    e.returnValue = false;
                }
            }
        }
        var initPriceRange = function (minVal, maxVal) {
            //슬라이더 init
            var priceRS = $("#priceRangeSet");
            var priceRMax = $("#priceRangeMax");
            var priceRMin = $("#priceRangeMin");
 
            priceRS.slider({
                range: true,
                min: minVal,
                max: maxVal,
                values: [minVal, maxVal],
                slide: function (event, ui) {
                    priceRMin.val(numberSetComma(ui.values[0]));
                    priceRMax.val(numberSetComma(ui.values[1]));
                }
            });
            //텍스트 폼에 최초 최대값 세팅
            priceRMin.val(numberSetComma(priceRS.slider("values", 0))).attr("title", "가격 최소값(숫자만 입력 가능, " +
                numberSetComma(priceRS.slider("values", 0)) + " 이상)");
            priceRMax.val(numberSetComma(priceRS.slider("values", 1))).attr("title", "가격 최대값(숫자만 입력 가능, " +
                numberSetComma(priceRS.slider("values", 1)) + " 이하)");
 
            //접근성 처리를 위한 텍스트 폼과 slider UI 연동
            priceRMin.bind({
                keyup: function () {
                    if ($(this).val().length > 0) {
                        $(this).val(numberSetComma(numberDelComma($(this).val())));
                    }
                },
                blur: function () {
                    var originNum = numberDelComma($(this).val());
                    var maxFormVal = numberDelComma(priceRMax.val());
                    if (originNum < minVal) {
                        alert("최소 기준가격은  " + numberSetComma(minVal) + "원 입니다. 최소 기준가격 이상으로 입력해주세요.");
                        $(this).val(numberSetComma(minVal));
                        $(this).focus();
                    }
                    if (originNum >= maxFormVal) {
                        alert("가격 검색 시작값이 끝값보다 크거나 같습니다. 끝값인 " + priceRMax.val() + "보다 작은 값을 입력해주세요.");
                        $(this).val(numberSetComma(minVal));
                        $(this).focus();
                    }
                    priceRS.slider({
                        values: [numberDelComma(priceRMin.val()), numberDelComma(priceRMax.val())]
                    });
                }
            });
            priceRMax.bind({
                keyup: function () {
                    if ($(this).val().length > 0) {
                        $(this).val(numberSetComma(numberDelComma($(this).val())));
                    }
                },
                blur: function () {
                    var originNum = numberDelComma($(this).val());
                    var minFormVal = numberDelComma(priceRMin.val());
                    if (originNum > maxVal) {
                        alert("최대 기준가격은  " + numberSetComma(maxVal) + "원 입니다. 최대 기준가격 이하로 입력해주세요.");
                        $(this).val(numberSetComma(maxVal));
                        $(this).focus();
                    }
                    if (originNum <= minFormVal) {
                        alert("가격 검색 끝값이 시작값보다 작거나 같습니다. 시작값인 " + priceRMin.val() + "보다 큰 값을 입력해주세요.");
                        $(this).val(numberSetComma(maxVal));
                        $(this).focus();
                    }
                    priceRS.slider({
                        values: [numberDelComma(priceRMin.val()), numberDelComma(priceRMax.val())]
                    });
                }
            });
        };
 
        $(function () {
            initPriceRange(0, 300000); //로드시 혹은 로드 후 리스팅된 상품가격의 최소 최대값
        });
    </script>
    <!-- //스크립트 -->
 
</body>
 
</html>

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 613
© SIRSOFT
현재 페이지 제일 처음으로