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

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

在线预览   源码下载

实现的代码。

html代码:

<center>
       <div class="slider-date" id="slider-date-1">

           <!--底层-->
           <ul class="slider-bg clearfix">
               <li>1</li>
               <li>2</li>
               <li>3</li>
               <li>4</li>
               <li>5</li>
               <li>6</li>
               <li>7</li>
               <li>8</li>
               <li>9</li>
               <li>1年</li>
               <li>2年</li>
               <li>3年</li>
           </ul>

           <!--互动层-->
           <div class="slider-bar">
               <ul class="slider-bg clearfix">
                   <li>1<span>1个月</span></li>
                   <li>2<span>2个月</span></li>
                   <li>3<span>3个月</span></li>
                   <li>4<span>4个月</span></li>
                   <li>5<span>5个月</span></li>
                   <li>6<span>6个月</span></li>
                   <li>7<span>7个月</span></li>
                   <li>8<span>8个月</span></li>
                   <li>9<span>9个月</span></li>
                   <li>1年<span>1年</span></li>
                   <li>2年<span>2年</span></li>
                   <li>3年<span>3年</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-2">

           <!--底层-->
           <ul class="slider-bg clearfix">
               <li>1</li>
               <li>2</li>
               <li>3</li>
               <li>4</li>
               <li>5</li>
               <li>6</li>
               <li>7</li>
               <li>8</li>
               <li>9</li>
               <li>1年</li>
               <li>2年</li>
               <li>3年</li>
           </ul>

           <!--互动层-->
           <div class="slider-bar">
               <ul class="slider-bg clearfix">
                   <li>1<span>1个月</span></li>
                   <li>2<span>2个月</span></li>
                   <li>3<span>3个月</span></li>
                   <li>4<span>4个月</span></li>
                   <li>5<span>5个月</span></li>
                   <li>6<span>6个月</span></li>
                   <li>7<span>7个月</span></li>
                   <li>8<span>8个月</span></li>
                   <li>9<span>9个月</span></li>
                   <li>1年<span>1年</span></li>
                   <li>2年<span>2年</span></li>
                   <li>3年<span>3年</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-3">

           <!--底层-->
           <ul class="slider-bg clearfix">
               <li>1</li>
               <li>2</li>
               <li>3</li>
               <li>4</li>
               <li>5</li>
               <li>6</li>
               <li>7</li>
               <li>8</li>
               <li>9</li>
               <li>1年</li>
               <li>2年</li>
               <li>3年</li>
           </ul>

           <!--互动层-->
           <div class="slider-bar">
               <ul class="slider-bg clearfix">
                   <li>1<span>1个月</span></li>
                   <li>2<span>2个月</span></li>
                   <li>3<span>3个月</span></li>
                   <li>4<span>4个月</span></li>
                   <li>5<span>5个月</span></li>
                   <li>6<span>6个月</span></li>
                   <li>7<span>7个月</span></li>
                   <li>8<span>8个月</span></li>
                   <li>9<span>9个月</span></li>
                   <li>1年<span>1年</span></li>
                   <li>2年<span>2年</span></li>
                   <li>3年<span>3年</span></li>
               </ul>
               <!--滑块按钮-->
               <a href="javascript:;" class="slider-bar-btn"><i></i><i></i></a>
           </div>

       </div>
   </center>

css代码:

ul, li {
         padding: 0;
         margin: 0;
         list-style-type: none;
     }

     .clearfix:after {
         display: block;
         content: "";
         clear: both;
     }

     .slider-date {
         height: 36px;
         line-height: 36px;
         background: #e8e8e8;
         display: inline-block;
         position: relative;
     }

         .slider-date .slider-bg li {
             position: relative;
             float: left;
             width: 50px;
             border-left: solid 1px #ddd;
             font-size: 12px;
             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: -2px;
             left: 0;
             overflow: hidden;
             height: 40px;
             width: 50px;
         }

             .slider-date .slider-bar ul {
                 margin-top: 1px;
                 background: #43bfe3;
                 color: #fff;
                 height: 36px;
                 width: 1000px;
             }

         .slider-date .slider-bar-btn {
             line-height: 40px;
             text-align: center;
             position: absolute;
             top: -2px;
             right: 0px;
             display: block;
             width: 16px;
             height: 40px;
             background: #2dacd1;
             color: #fff;
         }

             .slider-date .slider-bar-btn i {
                 display: inline-block;
                 margin: 12px 2px;
                 width: 2px;
                 height: 12px;
                 background: #68c3de;
             }

js代码:

//滑动插件 by - mantou qq:676015863
       ; (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 = 50 + 1; //单个li的宽度

                   //滚动指定的位置
                   var sliderToDes = function (index) {

                       //最大不能超过11
                       if (index > 11) {
                           index = 11;
                       }

                       //最小不能小于 0
                       if (index < 0) {
                           index = 0;
                       }

                       //背景动画
                       $sliderBar.animate({
                           "width": liWid * (index + 1)
                       }, 500);

                       //执行回调
                       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 > 20 && wid < 620) {
                               $sliderBar.css("width", wid);
                           }
                       }).on(‘mouseup‘, function (e) {
                           $(this).off(‘mousemove mouseup‘);
                           var index = Math.ceil(wid / liWid) - 1;
                           sliderToDes(index);
                       });
                   });
               });
           }
       })(jQuery);

       $(function () {
           function a(index) {
               console.log(index + 1);
           }
           $("#slider-date-1").sliderDate({ callback: a });

           function b(index) {
               console.log(index + 1);
           }
           $("#slider-date-2").sliderDate({ callback: b });

           function c(index) {
               console.log(index + 1);
           }
           $("#slider-date-3").sliderDate({ callback: c });
       });

via:http://www.w2bc.com/article/jquery-sidebar-date-select

时间: 2024-11-03 05:35:27

基于jQuery滑动杆实现购买日期选择的相关文章

基于jQuery美化联动下拉选择框

今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="container"> <div class="inner"> <section id="main_content"

基于jQuery仿去哪儿城市选择代码

基于jQuery仿去哪儿城市选择代码.这是一款使用的jQuery城市选择特效代码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="lineSearch"> <ul> <li class="thRelative" id="hhDrop00"> <div class="boxSearch"> <span class="k

ztreeDeptSelect 基于jquery和ztree的部门选择插件

插件介绍 首先我们来看插件的功能演示(效果): 插件准备好后.前台只需编写html: <input type="text" class="deptName" /> 然后在javascript中渲染插件(代码使用jQuery写法): $(".deptName").ztreeDeptSelect(); 插件即渲染完成. 此插件已发布至github,源码地址: https://github.com/harveyhang/ztreeDeptS

基于jQuery商品分类选择提交表单代码

分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览   源码下载 实现的代码: <div class="yListr"> <form> <ul> <li><span>颜色</span> <em class="yListrclickem">深灰色<i></i></em> <e

基于jquery的城市选择插件

城市选择插件的难度不是很大,主要是对dom节点的操作.而我写的这个插件相对功能比较简答,没有加入省市联动. 上代码好了,参照代码的注释应该比较好理解. 1 /* 2 *基于jquery的城市选择插件 3 *author:youziclub 4 *2015-4-22 5 */ 6 ;(function($){ 7 $.fn.city=function(options){ 8 // 城市信息 9 var nav=['热门','A-G','H-L','M-T','W-Z','其他']; 10 var

基于jQuery带备忘录功能的日期选择器

今天给大家分享一款基于jQuery带备忘录功能的日期选择器.这款日期控制带有备记忘录功能.有备忘录的日期有一个圆圈,单击圆圈显示备忘录.该实例适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="container"> <header class="htmleaf-header">

基于jQuery日期插件jalendar2

分享一款基于jQuery日期插件jalendar2.这是一款基于jalendar插件实现的日期时间选择代码.效果图如下: 在线预览   源码下载 html代码: <div id="yourId" class="jalendar"> <div class="added-event" data-date="19-11-2015" data-title="WWDC 13 on San Francisco,

基于jQuery + JSON 的级联选择效果

昨天做项目的时候遇到了一个填写地址时选择省市的效果,看到了一个非常好用的 js ,这个是基于jQuery + JSON实现的,文件 jquery.cityselect.js 只有5kb 很小很实用. html 首先在 <head>中添加引用 jQuery 和 cityselect 插件. 1<script src="js/jquery.2.1.4.js" type="text/javascript" charset="utf-8"

【jquery】多日期选择插件easyui date

1.本次介绍一个好用的 多日期选择插件:EasyUI date,适用于:需要一次性选择多个日期,无需手动一个一个进行添加. 2.效果图: 3.下载地址:http://www.jeasyui.com/download/index.php 4.汉化:建议在使用页面: <script type="text/javascript" src="你的网站绝对地址/locale/easyui-lang-zh_CN.js"></script> 5.使用Dem