JavaScript實(shí)現(xiàn)移動端滑動選擇日期功能
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)滑動選擇日期的具體代碼,供大家參考,具體內(nèi)容如下
$(page).on('touchmove','#touchMoveTime',function (event) {
touchMove(event);
});
scrollBarInit(); //初始化
function scrollBarInit() {
var defaultValue = 3,maxValue = 30;
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1; //獲取當(dāng)前月份(0-11,0代表1月)
var date = myDate.getDate();
var day = new Date(year,month,0);
var daycount = day.getDate(); //獲取本月天數(shù):
if((date + defaultValue) > daycount){
if(month == 12){
month = 1;
year = year + 1;
}else{
month = month + 1;
}
date = (date + defaultValue) - daycount;
}else{
date = date + defaultValue;
}
if(month < 10){
month = "0"+month;
}
if(date < 10){
date = "0"+date;
}
$("#endTime").attr('value',year+'-'+month+'-'+date);
var currentX = $("#touchMoveTime").width() * (0 / maxValue);
$('#scroll_Track').css({width:currentX+"px"});
$('#scroll_Thumb').css({transform:'translate(' + currentX + 'px, 0)'});
};
function touchMove(event) {
event.preventDefault();
if (!$('#scroll_Thumb') || !event.touches.length) return;
var defaultValue = 3,maxValue = 30;
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1; //獲取當(dāng)前月份(0-11,0代表1月)
var date = myDate.getDate();
var tran_currentX = '';
var startOffset = parseInt($('#touchMoveTime').offset().left);
var endOffset = parseInt($('#touchRight').offset().left);
var _limit = endOffset - startOffset;
var touchMoveTimeOffsetLeft = $('#scroll_Track').offset().left;
var touch = event.touches[0];
var endX = touch.pageX;
var currentX = endX - touchMoveTimeOffsetLeft;
var Timevalue = Math.round(maxValue * (currentX / $("#touchMoveTime").width())); //當(dāng)前刻度值
if(Timevalue < defaultValue){
Timevalue = defaultValue
}else if(Timevalue > maxValue){
Timevalue = maxValue;
}
if(currentX < _limit && currentX > 15){
$('#days').text(Timevalue);
$('#scroll_Track').css({width:currentX+"px"});
if(currentX < 20){
tran_currentX = 0
}else{
tran_currentX = currentX - 20;
}
$('#scroll_Thumb').css({transform:'translate(' + tran_currentX + 'px, 0)'});
var day = new Date(year,month,0);
var daycount = day.getDate(); //獲取本月天數(shù)
if((date + Timevalue) > daycount){
if(month == 12){
month = 1;
year = year + 1;
}else{
month = month + 1;
}
date = (date + Timevalue) - daycount;
}else{
date = date + Timevalue;
}
if(month < 10){
month = "0"+month;
}
if(date < 10){
date = "0"+date;
}
$('#endTime').attr('value',year+'-'+month+'-'+date);
}
}
<div class="clList"> <span class="cl-15 pull-left">3天</span> <div id="touchMoveTime" class="jzrqDiv cl-70 pull-left"> <div id="scroll_Track"></div> <div class="spirit icon" id="scroll_Thumb"></div> </div> <span class="cl-15 pull-left text-right" id="touchRight">30天</span> </div>
.jzrqDiv{position:relative; top:15px; height: 10px; border-radius: 20px; background: #efefef; box-shadow:inset 0 1px 2px rgba(0,0,0,.15); }
2 #scroll_Track{ position: absolute; top:0; height: 10px; border-radius: 20px; background: #2399dc; z-index: 10;}
3 .spirit {position: absolute; top:-9px; width: 30px;height: 30px;line-height: 30px;font-size: 30px;border-radius: 50%;color: #ddd; background: #fff; z-index: 11;transform: translate(0,0);}

更多關(guān)于滑動效果的專題,請點(diǎn)擊下方鏈接查看:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
- js實(shí)現(xiàn)移動端tab切換時下劃線滑動效果
- Swiper.js實(shí)現(xiàn)移動端元素左右滑動
- js原生實(shí)現(xiàn)移動端手指滑動輪播圖效果的示例
- JS實(shí)現(xiàn)移動端整屏滑動的實(shí)例代碼
- js實(shí)現(xiàn)移動端導(dǎo)航點(diǎn)擊自動滑動效果
- 原生javascript移動端滑動banner效果
- 基于JS實(shí)現(xiàn)移動端向左滑動出現(xiàn)刪除按鈕功能
- 基于slideout.js實(shí)現(xiàn)移動端側(cè)邊欄滑動特效
- 淺談移動端之js touch事件 手勢滑動事件
- JS實(shí)現(xiàn)移動端上下滑動一次一屏
相關(guān)文章
AlertBox 彈出層信息提示框效果實(shí)現(xiàn)步驟
彈出層就是相對文檔或窗口定位的一個層,一般用來顯示提示信息、廣告等內(nèi)容,還可以配合覆蓋層來鎖定頁面。2010-10-10
七個基于JavaScript實(shí)現(xiàn)的情人節(jié)表白特效
情人節(jié)將至 程序員證明自己不是直男的時候到啦 我們也有自己的專屬代碼浪漫。本文將介紹七個利用JavaScript實(shí)現(xiàn)的情人節(jié)表白特效,需要的可以參考一下2022-01-01
JavaScript跨瀏覽器獲取頁面中相同class節(jié)點(diǎn)的方法
這篇文章主要介紹了JavaScript跨瀏覽器獲取頁面中相同class節(jié)點(diǎn)的方法,本文講解使用getELementsByClassName函數(shù)解決這個需求,并給了一個開源的getELementsByClassName函數(shù)實(shí)現(xiàn),功能更加強(qiáng)大,需要的朋友可以參考下2015-03-03
JavaScript中slice和padEnd的使用小結(jié)
本文介紹了JavaScript中slice和padEnd的使用小結(jié),常常被用于數(shù)據(jù)處理、格式化和切割任務(wù)中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
JS實(shí)現(xiàn)省市縣三級下拉聯(lián)動
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)省市縣三級下拉聯(lián)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04
PHP自動加載autoload和命名空間的應(yīng)用小結(jié)
PHP的自動加載就是我們加載實(shí)例化類的時候,不需要手動去寫require來導(dǎo)入這個class.php文件,程序自動幫我們加載導(dǎo)入進(jìn)來這.篇文章主要介紹了PHP自動加載autoload和命名空的應(yīng)用,需要的朋友可以參考下2017-12-12
JS實(shí)現(xiàn)漢字與Unicode碼相互轉(zhuǎn)換的方法詳解
這篇文章主要介紹了JS實(shí)現(xiàn)漢字與Unicode碼相互轉(zhuǎn)換的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript針對漢字與Unicode編碼轉(zhuǎn)換的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-04-04

