jQuery를 기반으로 한 슬라이딩 바 구매 날짜 선택 플러그인으로, 외관은 Alibaba Cloud의 서버 구매 날짜 선택 인터페이스를 모방합니다. 이 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 }); });
위 코드는 매우 간단합니다. 마음에 드셨으면 좋겠습니다.