Budget Slider – слайдер, который наглядно показывает уровень финансов.

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
7,758
Реакции
1,449
Credits
25,276
фронт.jpg
Budget Slider – слайдер, который наглядно показывает уровень финансов. Чем больше вы двигаете ползунок вправо, тем больше становится денежная сумма, выведенная на экран.

HTML
Код:
<section id="content">
  <h1>What is your budget?</h1>
  <div class="cube">
    <div class="a"></div>
    <div class="b"></div>
    <div class="c"></div>
    <div class="d"></div>
    <div id="slider-range-min"></div>
  </div>
  <input type="text" id="amount" />
  <p class="credits">This is pen is inspired by <a href="http://dribbble.com/shots/435827-Concept-for-budget-price-slider?list=searches&tag=ui" target="_blank">Erik Deiner's dribbble post</a></p>
</section>

CSS

Код:
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,900);
@import url(https://fonts.googleapis.com/css?family=Anonymous+Pro);
@import url(https://fonts.googleapis.com/css?family=Exo:300,800);

* {
  margin:0px;
  padding:0px;
}
.cube {
  position:relative;
  width:500px;
  height:60px;
  margin:5rem auto;
  -webkit-transform-style:preserve-3d;
  -moz-transform-style:   preserve-3d;
  -ms-transform-style:    preserve-3d;
  -o-transform-style:     preserve-3d;
  transform-style:        preserve-3d;
  -webkit-perspective:400px;
  -moz-perspective:   400px;
  -ms-perspective:    400px;
  -o-perspective:     400px;
  perspective:        400px;
}
/* positions */
.a, .b, .c, .d {
  position:absolute;
  width:50%;
  height:100%;
  left:0px;
  z-index:222;
}
.a:before, .b:before, .c:before, .d:before, .a:after, .b:after {
  content:'';
  position:absolute;
  top:0px;
  left:0px;
  width:500px;
  height:60px;
}
.a:before, .b:before, .c:before, .d:before {
  z-index:111;
}
.a:after, .b:after {
  z-index:333;
}
.b {
  top:0px;
  -webkit-transform:rotateX(75deg) translateY(-60px);
  -moz-transform:   rotateX(75deg) translateY(-60px);
  -o-transform:     rotateX(75deg) translateY(-60px);
  -ms-transform:    rotateX(75deg) translateY(-60px);
  transform:        rotateX(75deg) translateY(-60px);
  -webkit-transform-origin:0% 0%;
  -moz-transform-origin:   0% 0%;
  -o-transform-origin:     0% 0%;
  -ms-transform-origin:    0% 0%;
  transform-origin:        0% 0%;
}
.c {
  top:0px;
  -webkit-transform:rotateX(75deg);
  -moz-transform:   rotateX(75deg);
  -o-transform:     rotateX(75deg);
  -ms-transform:    rotateX(75deg);
  transform:        rotateX(75deg);
  -webkit-transform-origin:100% 100%;
  -moz-transform-origin:   100% 100%;
  -o-transform-origin:     100% 100%;
  -ms-transform-origin:    100% 100%;
  transform-origin:        100% 100%;
}
.d {
  -webkit-transform:translateZ(-60px) translateY(-15px);
  -moz-transform:   translateZ(-60px) translateY(-15px);
  -o-transform:     translateZ(-60px) translateY(-15px);
  -ms-transform:    translateZ(-60px) translateY(-15px);
  transform:        translateZ(-60px) translateY(-15px);
}
/* colors */
.a, .b {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(116,198,43,0.8)), to(rgba(116,198,43,0.8)));
  background-image: -webkit-linear-gradient(top, rgba(116,198,43,0.8), rgba(116,198,43,0.8));
  background-image:    -moz-linear-gradient(top, rgba(116,198,43,0.8), rgba(116,198,43,0.8));
  background-image:      -o-linear-gradient(top, rgba(116,198,43,0.8), rgba(116,198,43,0.8));
  background-image:         linear-gradient(to bottom, rgba(116,198,43,0.8), rgba(116,198,43,0.8));
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:0% 0%;
}
.c, .d {
  background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(116,198,43,0.5)), to(rgba(116,198,43,0.5)));
  background-image:-webkit-linear-gradient(top, rgba(116,198,43,0.5), rgba(116,198,43,0.5));
  background-image:   -moz-linear-gradient(top, rgba(116,198,43,0.5), rgba(116,198,43,0.5));
  background-image:     -o-linear-gradient(top, rgba(116,198,43,0.5), rgba(116,198,43,0.5));
  background-image:        linear-gradient(to bottom, rgba(116,198,43,0.5), rgba(116,198,43,0.5));
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:0% 0%;
}
.c:before {
  -webkit-box-shadow:0px 30px 20px -20px rgba(0,0,0,0.4),
                     0px 40px 15px -15px rgba(0,0,0,0.25);
  -moz-box-shadow:   0px 30px 20px -20px rgba(0,0,0,0.4),
                     0px 40px 15px -15px rgba(0,0,0,0.25);
  box-shadow:        0px 30px 20px -20px rgba(0,0,0,0.4),
                     0px 40px 15px -15px rgba(0,0,0,0.25);
}
.a:before, .b:before, .c:before, .d:before {
  background-color:rgba(0,0,0,0.05);
}
.a:after {
  background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0.07)), to(rgba(0,0,0,0)));
  background-image:-webkit-linear-gradient(top, rgba(0,0,0,0.07), rgba(0,0,0,0));
  background-image:   -moz-linear-gradient(top, rgba(0,0,0,0.07), rgba(0,0,0,0));
  background-image:     -o-linear-gradient(top, rgba(0,0,0,0.07), rgba(0,0,0,0));
  background-image:        linear-gradient(to bottom, rgba(0,0,0,0.07), rgba(0,0,0,0));
}
.b:after {
  background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.1)), to(rgba(255,255,255,0.25)));
  background-image:-webkit-linear-gradient(top, rgba(255,255,255,0.1), rgba(255,255,255,0.25));
  background-image:   -moz-linear-gradient(top, rgba(255,255,255,0.1), rgba(255,255,255,0.25));
  background-image:     -o-linear-gradient(top, rgba(255,255,255,0.1), rgba(255,255,255,0.25));
  background-image:        linear-gradient(to bottom, rgba(255,255,255,0.1), rgba(255,255,255,0.25));
}
/* jQuery stuff */
#slider-range-min {
  position:absolute;
  width: 94%;
  left:3%;
  top:27px;
  margin: 0px;
  z-index:999;
}
.ui-slider {
  height:5px;
  border:none;
  background:rgba(0,0,0,0.1);
  -webkit-box-shadow:0px 2px 2px rgba(255,255,255,0.25),
                     inset 0px 1px 3px rgba(0,0,0,0.3);
  -moz-box-shadow:   0px 2px 2px rgba(255,255,255,0.25),
                     inset 0px 1px 3px rgba(0,0,0,0.3);
  box-shadow:        0px 2px 2px rgba(255,255,255,0.25),
                     inset 0px 1px 3px rgba(0,0,0,0.3);
}
.ui-slider:before, .ui-slider:after {
  content:'IIIIIIIIIII';
  position:absolute;
  left:2px;
  width:100%;
  font-family: 'Source Sans Pro', sans-serif;
  font-size:1.2rem;
  font-weight:300;
  color:rgba(0,0,0,0.3);
  letter-spacing:41px;
  text-shadow:1px 1px 0px rgba(255,255,255,0.2);
}
.ui-slider:before {
  top:-1.4rem;
}
.ui-slider:after {
  bottom:-1.4rem;
}
.ui-slider-range {background:transparent;}
.ui-slider .ui-slider-handle {
  top:-8px;
  width:26px;
  height:20px;
  margin-left:-15px;
  padding-left:4px;
  border:none;
  background:rgba(255,255,255,0.7);
  border-radius:2px;
  text-align:center;
  font-family: 'Anonymous Pro', sans-serif;
  font-size:1.2rem;
  line-height:20px;
  color:rgba(0,0,0,0.5);
  text-decoration:none;
  letter-spacing:3px;
  cursor:pointer;
  text-shadow:1px 1px 2px rgba(255,255,255,1);
  -webkit-box-shadow:1px 1px 8px rgba(0,0,0,0.3);
  -moz-box-shadow:   1px 1px 8px rgba(0,0,0,0.3);
  box-shadow:        1px 1px 8px rgba(0,0,0,0.3);
}
.ui-slider .ui-slider-handle:focus {
  outline:none;
}
/* typo */
h1 {
  font-size:2.7rem;
  font-weight:200;
  color:rgba(0,0,0,0.6);
  text-shadow:1px 1px 0px rgba(255,255,255,0.3);
}
p {
  font-size:1.2rem;
  font-weight:300;
  line-height:1.8rem;
  color:rgba(0,0,0,0.8);
}
.credits a {
  position:relative;
  display:inline-block;
  color:#529e0e;
  text-decoration:none;
}
.credits a:after {
  content:'';
  position:absolute;
  left:-1.5%;
  bottom:-1px;
  width:0%;
  height:1px;
  background:#529e0e;
  -webkit-transition:width 0.1s;
  -moz-transition:   width 0.1s;
  -o-transition:     width 0.1s;
  transition:        width 0.1s;
}
.credits a:hover::after {
  width:103%;
}
#amount {
  position:relative;
  display:inline-block;
  padding-bottom:5rem;
  text-align:center;
  font-family: 'Exo', sans-serif;
  font-weight:800;
  font-size:4rem;
  color:#529e0e;
  background:transparent;
  border:none;
}
#amount:focus {outline:none;}
/* base */
#content {
  -webkit-box-sizing:border-box;
  -moz-box-sizing:   border-box;
  box-sizing:        border-box;
  width:100%;
  height:100%;
  padding-top:5rem;
  text-align:center;
}
html, body {
  height:100%;
  background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0.08)), to(rgba(0,0,0,0.05)));
  background-image:-webkit-linear-gradient(top, rgba(0,0,0,0.08), rgba(0,0,0,0.05));
  background-image:   -moz-linear-gradient(top, rgba(0,0,0,0.08), rgba(0,0,0,0.05));
  background-image:     -o-linear-gradient(top, rgba(0,0,0,0.08), rgba(0,0,0,0.05));
  background-image:        linear-gradient(to bottom, rgba(0,0,0,0.08), rgba(0,0,0,0.05));
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:0% 0%;
  font-family: 'Source Sans Pro', sans-serif;
}

JS
Код:
 $(function() {
    $( "#slider-range-min" ).slider({
      range: "min",
      value: 50,
      min: 0,
      max: 100,
      slide: function( event, ui ) {
        $( "#amount" ).val( "$" + ui.value + ",000");
        $(".a, .b, .c, .d").width(ui.value + "%");
      }
    });
    $(".ui-slider-handle").text("<>");
    $( "#amount" ).val( "$" + $( "#slider-range-min" ).slider( "value") + ",000");
  });