基于jQuery滑动杆实现购买日期选择效果


Posted in Javascript onSeptember 15, 2015

这是一款基于jQuery的滑动杆购买日期选择插件,它的外观仿的是阿里云的服务器购买日期选择界面。这款jQuery插件非常适合在一些虚拟产品购买页面上使用,它可以帮助你的用户快速选择产品的购买日期,十分方便。效果图如下:

基于jQuery滑动杆实现购买日期选择效果

在线预览    源码下载

html代码:

<center>
  <div class="slider-date" id="slider-date-">
   <!--底层-->
   <ul class="slider-bg clearfix">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li>年</li>
    <li>年</li>
    <li>年</li>
   </ul>
   <!--互动层-->
   <div class="slider-bar">
    <ul class="slider-bg clearfix">
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
    </ul>
    <!--滑块按钮-->
    <a href="javascript:;" class="slider-bar-btn"><i></i><i></i></a>
   </div>
  </div>
  <br />
  <br />
  <div class="slider-date" id="slider-date-">
   <!--底层-->
   <ul class="slider-bg clearfix">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li>年</li>
    <li>年</li>
    <li>年</li>
   </ul>
   <!--互动层-->
   <div class="slider-bar">
    <ul class="slider-bg clearfix">
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
    </ul>
    <!--滑块按钮-->
    <a href="javascript:;" class="slider-bar-btn"><i></i><i></i></a>
   </div>
  </div>
  <br />
  <br />
  <div class="slider-date" id="slider-date-">
   <!--底层-->
   <ul class="slider-bg clearfix">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li>年</li>
    <li>年</li>
    <li>年</li>
   </ul>
   <!--互动层-->
   <div class="slider-bar">
    <ul class="slider-bg clearfix">
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li><span>个月</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
     <li>年<span>年</span></li>
    </ul>
    <!--滑块按钮-->
    <a href="javascript:;" class="slider-bar-btn"><i></i><i></i></a>
   </div>
  </div>
 </center>

css代码:

ul, li {
   padding: ;
   margin: ;
   list-style-type: none;
  }
  .clearfix:after {
   display: block;
   content: "";
   clear: both;
  }
  .slider-date {
   height: px;
   line-height: px;
   background: #eee;
   display: inline-block;
   position: relative;
  }
   .slider-date .slider-bg li {
    position: relative;
    float: left;
    width: px;
    border-left: solid px #ddd;
    font-size: px;
    text-align: center;
   }
   .slider-date .slider-bg span {
    display: none;
   }
   .slider-date .slider-bg li:first-child {
    border-left: none;
   }
   .slider-date .slider-bar {
    position: absolute;
    top: -px;
    left: ;
    overflow: hidden;
    height: px;
    width: px;
   }
    .slider-date .slider-bar ul {
     margin-top: px;
     background: #bfe;
     color: #fff;
     height: px;
     width: px;
    }
   .slider-date .slider-bar-btn {
    line-height: px;
    text-align: center;
    position: absolute;
    top: -px;
    right: px;
    display: block;
    width: px;
    height: px;
    background: #dacd;
    color: #fff;
   }
    .slider-date .slider-bar-btn i {
     display: inline-block;
     margin: px px;
     width: px;
     height: px;
     background: #cde;
    }

js代码:

//滑动插件 by - mantou qq:
  ; (function ($) {
   $.fn.sliderDate = function (setting) {
    var defaults = {
     callback: false //默认回调函数为false
    }
    //如果setting为空,就取default的值
    var setting = $.extend(defaults, setting);
    this.each(function () {
     //插件实现代码
     //var $sliderDate = $(".slider-date");
     var $sliderDate = $(this);
     var $sliderBar = $sliderDate.find(".slider-bar");
     var $sliderBtn = $sliderDate.find(".slider-bar-btn");
     var liWid = + ; //单个li的宽度
     //滚动指定的位置
     var sliderToDes = function (index) {
      //最大不能超过
      if (index > ) {
       index = ;
      }
      //最小不能小于 
      if (index < ) {
       index = ;
      }
      //背景动画
      $sliderBar.animate({
       "width": liWid * (index + )
      }, );
      //执行回调
      if (setting.callback) {
       setting.callback(index);
      }
     };
     //点击 - 滚动到指定位置
     $sliderDate.on('click', "li", function (e) {
      //执行滚动方法
      sliderToDes($(this).index());
     });
     //拖动 - 滚动到指定位置
     $sliderBtn.on('mousedown', function (e) {
      var $this = $(this);
      var pointX = e.pageX - $this.parent().width();
      var wid = null;
      //拖动事件
      $(document).on('mousemove', function (ev) {
       wid = ev.pageX - pointX
       if (wid > && wid < ) {
        $sliderBar.css("width", wid);
       }
      }).on('mouseup', function (e) {
       $(this).off('mousemove mouseup');
       var index = Math.ceil(wid / liWid) - ;
       sliderToDes(index);
      });
     });
    });
   }
  })(jQuery);
  $(function () {
   function a(index) {
    console.log(index + );
   }
   $("#slider-date-").sliderDate({ callback: a });
   function b(index) {
    console.log(index + );
   }
   $("#slider-date-").sliderDate({ callback: b });
   function c(index) {
    console.log(index + );
   }
   $("#slider-date-").sliderDate({ callback: c });
  });

以上代码很简单吧,希望大家能够喜欢。

Javascript 相关文章推荐
javascript 嵌套的函数(作用域链)
Mar 15 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
微信小程序 地图定位简单实例
Oct 14 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
JS实现购物车基本功能
Nov 08 Javascript
详解React路由传参方法汇总记录
Nov 29 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 #Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 #Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
Sep 15 #Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 #Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 #Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 #Javascript
JS实现完全语义化的网页选项卡效果代码
Sep 15 #Javascript
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
前端性能优化及技巧
2016/05/06 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
对Python w和w+权限的区别详解
2019/01/23 Python
python实现自动化上线脚本的示例
2019/07/01 Python
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
周鸿祎:教你写创业计划书
2013/12/30 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
党员剖析材料范文
2014/09/30 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
golang interface判断为空nil的实现代码
2021/04/24 Golang
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
python+opencv实现目标跟踪过程
2022/06/21 Python