其他代码

基于jQueryUI的炫酷3D立体滑块特效

阿里云


这是一款基于 jQueryUI 的炫酷 3D 立体滑块特效。该滑块使用 CSS3 制作为带阴影效果的立体形状,滑块的拖动是通过 jQueryUI 来实现,在滑块拖动的时候,还可以显示联动的数值,效果非常不错。

HTML 结构

该滑块的 HTML 结构非常简单,实际上就是一个 3D 立方体。a、b、c、d 分别为立方体的左右和上前 4 个面,div.slider-range-min 是滑块的凹槽。实际的滑块是一个<input>元素。

也想出现在这里?联系我们
创客主机
  1. <section id="content">
  2.   <h1>......</h1>
  3.   <div class="cube">
  4.     <div class="a"></div>
  5.     <div class="b"></div>
  6.     <div class="c"></div>
  7.     <div class="d"></div>
  8.     <div id="slider-range-min"></div>
  9.   </div>
  10.   <input type="text" id="amount" />
  11. </section>

CSS 样式

立方体的基本样式如下:

  1. .cube {
  2.   position:relative;
  3.   width:500px;
  4.   height:60px;
  5.   margin:5rem auto;
  6.   -webkit-transform-style:preserve-3d;
  7.   -moz-transform-style:   preserve-3d;
  8.   -ms-transform-style:    preserve-3d;
  9.   -o-transform-style:     preserve-3d;
  10.   transform-style:        preserve-3d;
  11.   -webkit-perspective:400px;
  12.   -moz-perspective:   400px;
  13.   -ms-perspective:    400px;
  14.   -o-perspective:     400px;
  15.   perspective:        400px;
  16. }
  17. /* 定位 */
  18. .a, .b, .c, .d {
  19.   position:absolute;
  20.   width:50%;
  21.   height:100%;
  22.   left:0px;
  23.   z-index:222;
  24. }
  25. .a:before, .b:before, .c:before, .d:before, .a:after, .b:after {
  26.   content:'';
  27.   position:absolute;
  28.   top:0px;
  29.   left:0px;
  30.   width:500px;
  31.   height:60px;
  32. }
  33. .a:before, .b:before, .c:before, .d:before {
  34.   z-index:111;
  35. }
  36. .a:after, .b:after {
  37.   z-index:333;
  38. }
  39. .b {
  40.   top:0px;
  41.   -webkit-transform:rotateX(75deg) translateY(-60px);
  42.   -moz-transform:   rotateX(75deg) translateY(-60px);
  43.   -o-transform:     rotateX(75deg) translateY(-60px);
  44.   -ms-transform:    rotateX(75deg) translateY(-60px);
  45.   transform:        rotateX(75deg) translateY(-60px);
  46.   -webkit-transform-origin:0% 0%;
  47.   -moz-transform-origin:   0% 0%;
  48.   -o-transform-origin:     0% 0%;
  49.   -ms-transform-origin:    0% 0%;
  50.   transform-origin:        0% 0%;
  51. }
  52. .c {
  53.   top:0px;
  54.   -webkit-transform:rotateX(75deg);
  55.   -moz-transform:   rotateX(75deg);
  56.   -o-transform:     rotateX(75deg);
  57.   -ms-transform:    rotateX(75deg);
  58.   transform:        rotateX(75deg);
  59.   -webkit-transform-origin:100% 100%;
  60.   -moz-transform-origin:   100% 100%;
  61.   -o-transform-origin:     100% 100%;
  62.   -ms-transform-origin:    100% 100%;
  63.   transform-origin:        100% 100%;
  64. }
  65. .d {
  66.   -webkit-transform:translateZ(-60px) translateY(-15px);
  67.   -moz-transform:   translateZ(-60px) translateY(-15px);
  68.   -o-transform:     translateZ(-60px) translateY(-15px);
  69.   -ms-transform:    translateZ(-60px) translateY(-15px);
  70.   transform:        translateZ(-60px) translateY(-15px);
  71. }

然后分别为每个面设置颜色。接着设置滑块的一些样式:

  1. #slider-range-min {
  2.   position:absolute;
  3.   width: 94%;
  4.   left:3%;
  5.   top:27px;
  6.   margin: 0px;
  7.   z-index:999;
  8. }
  9. .ui-slider {
  10.   height:5px;
  11.   border:none;
  12.   background:rgba(0,0,0,0.1);
  13.   -webkit-box-shadow:0px 2px 2px rgba(255,255,255,0.25),
  14.                      inset 0px 1px 3px rgba(0,0,0,0.3);
  15.   -moz-box-shadow:   0px 2px 2px rgba(255,255,255,0.25),
  16.                      inset 0px 1px 3px rgba(0,0,0,0.3);
  17.   box-shadow:        0px 2px 2px rgba(255,255,255,0.25),
  18.                      inset 0px 1px 3px rgba(0,0,0,0.3);
  19. }
  20. .ui-slider:before, .ui-slider:after {
  21.   content:'IIIIIIIIIII';
  22.   position:absolute;
  23.   left:2px;
  24.   width:100%;
  25.   font-family: 'Source Sans Pro', sans-serif;
  26.   font-size:1.2rem;
  27.   font-weight:300;
  28.   color:rgba(0,0,0,0.3);
  29.   letter-spacing:41px;
  30.   text-shadow:1px 1px 0px rgba(255,255,255,0.2);
  31. }
  32. .ui-slider:before {
  33.   top:-1.4rem;
  34. }
  35. .ui-slider:after {
  36.   bottom:-1.4rem;
  37. }
  38. .ui-slider-range {background:transparent;}
  39. .ui-slider .ui-slider-handle {
  40.   top:-8px;
  41.   width:26px;
  42.   height:20px;
  43.   margin-left:-15px;
  44.   padding-left:4px;
  45.   border:none;
  46.   background:rgba(255,255,255,0.7);
  47.   border-radius:2px;
  48.   text-align:center;
  49.   font-family: 'Anonymous Pro', sans-serif;
  50.   font-size:1.2rem;
  51.   line-height:20px;
  52.   color:rgba(0,0,0,0.5);
  53.   text-decoration:none;
  54.   letter-spacing:3px;
  55.   cursor:pointer;
  56.   text-shadow:1px 1px 2px rgba(255,255,255,1);
  57.   -webkit-box-shadow:1px 1px 8px rgba(0,0,0,0.3);
  58.   -moz-box-shadow:   1px 1px 8px rgba(0,0,0,0.3);
  59.   box-shadow:        1px 1px 8px rgba(0,0,0,0.3);
  60. }
  61. .ui-slider .ui-slider-handle:focus {
  62.   outline:none;
  63. }

Javascript

在 jQuery 代码中使用 jQueryUI 的 slider()方法来制作滑块。并使数值和滑块进行联动。

  1. $(function () {
  2.       $('#slider-range-min').slider({
  3.           range: 'min',
  4.           value: 50,
  5.           min: 0,
  6.           max: 100,
  7.           slide: function (event, ui) {
  8.               $('#amount').val('$' + ui.value + ',000');
  9.               $('.a, .b, .c, .d').width(ui.value + '%');
  10.           }
  11.       });
  12.       $('.ui-slider-handle').text('<>');
  13.       $('#amount').val('$' + $('#slider-range-min').slider('value') + ',000');
  14.   });

基于 jQueryUI 的炫酷 3D 立体滑块特效

已有 380 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!