HTML5カスタムカレンダーの詳細なサンプルコードcontrol
ys_datetime_selector.css
.ys-datetime-selector{ position:fixed; left:0; right:0; top:0; bottom:0; background-color:rgba(0,0,0,0.3); z-index: 999; } .ys-datetime-selector.display-hide{ transform: translate3d(100%,0,0); -webkit-transform: translate3d(100%,0,0); visibility: hidden; } .ys-datetime-selector .ys-datetime-selector-content{ position:absolute; left:0; right:0; bottom:0; background-color:#fff; } /* ======================================== ys-datetime-operation-bar ======================================== */ .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar{ height:45px; line-height: 44px; border-bottom:1px solid #e0e0e0; text-align: center; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar span{ color:#333; font-size:16px; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a{ position:absolute; top:0; bottom:0; padding:0 15px; font-size:16px; color:#4e9dcf; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a.ys-datetime-cancel-btn{left:0;} .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a.ys-datetime-ok-btn{right:0;} /* ======================================== ys-datetime-blocks ======================================== */ .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks{ position:relative; height:170px; -webkit-mask-box-image: -webkit-linear-gradient(top, rgba(0,0,0,0.2), rgba(0,0,0,0.4) 20%,rgba(0,0,0,0.6) 39%, white 40%, white 60%,rgba(0,0,0,0.6) 41%, rgba(0,0,0,0.4) 80%,rgba(0,0,0,0.2)); -webkit-mask-box-image: linear-gradient(to top, rgba(0,0,0,0.2), rgba(0,0,0,0.2), rgba(0,0,0,0.4) 20%,rgba(0,0,0,0.6) 39%, white 40%, white 60%,rgba(0,0,0,0.6) 41%, rgba(0,0,0,0.4) 80%,rgba(0,0,0,0.2)); } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks:before{ content:""; position:absolute; left:0; right:0; height:1px; background-color:#cdcdcd; top:68px; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks:after{ content:""; position:absolute; left:0; right:0; height:1px; background-color:#cdcdcd; bottom:68px; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div{ width:33.333%; float:left; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.block-hide{ display:none; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.width-50{ width:50%; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.width-100{ width:100%; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks .swiper-container{ height:170px; } .ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks .swiper-container .swiper-slide{ height:34px; line-height: 34px; text-align: center; } /* ================================================== page animation start ================================================== */ .ys-datetime-selector .datetime-selector-animated{ animation-duration: 0.3s; -webkit-animation-duration: 0.3s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } /* datetime-selector-slide-down-in */ .ys-datetime-selector .datetime-selector-slide-down-in{ animation-name:datetime-selector-slide-down-in; -webkit-animation-name:datetime-selector-slide-down-in; } @keyframes datetime-selector-slide-down-in { from{ -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to{ -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @-webkit-keyframes datetime-selector-slide-down-in { from{ -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to{ -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } /* datetime-selector-slide-down-out */ .datetime-selector-slide-down-out{ animation-name:datetime-selector-slide-down-out; -webkit-animation-name:datetime-selector-slide-down-out; } @keyframes datetime-selector-slide-down-out { from{ -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to{ -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @-webkit-keyframes datetime-selector-slide-down-out { from{ -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to{ -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } }
ys_datetime_selector.js
(function($){ var container = $(".ys-datetime-selector"); var currentYear = new Date().getFullYear(); var currentMonth = new Date().getMonth()+1; var currentDate = new Date().getDate(); var currentDayCount = getMaxDateInMonth(currentYear,currentMonth); var yearSwiper =null; var monthSwiper =null; var dateSwiper =null; var callback = function(year,month,date){}; var html = "<div class='ys-datetime-selector display-hide'> "+ " <div class='ys-datetime-selector-content'> "+ " <div class='ys-datetime-operation-bar'> "+ " <a class='ys-datetime-cancel-btn'>取消</a>"+ " <span>选择日期</span> "+ " <a class='ys-datetime-ok-btn'>确定</a> "+ " </div> "+ " <div class='ys-datetime-blocks'> "+ " <div class='ys-datetime-year-block'> "+ " <div class='swiper-container'> "+ " <div class='swiper-wrapper'></div>"+ " </div> "+ " </div> "+ " <div class='ys-datetime-month-block'> "+ " <div class='swiper-container'> "+ " <div class='swiper-wrapper'></div>"+ " </div> "+ " </div> "+ " <div class='ys-datetime-date-block'> "+ " <div class='swiper-container'> "+ " <div class='swiper-wrapper'></div>"+ " </div> "+ " </div> "+ " <div style='clear:both;'></div> "+ " </div> "+ " </div> "+ "</div> "; /* ======================================== initialize the page view ======================================== */ function render(){ container = $(html).appendTo("body"); yearSwiper = new Swiper(".ys-datetime-year-block .swiper-container", { direction : "vertical", freeMode:true, freeModeSticky:true, slidesPerView: "auto", onTransitionEnd:function(swiper){ var activeIndex = swiper.activeIndex; var slidesLen = swiper.slides.length; if(activeIndex<20){ var firstYear = parseInt($(swiper.slides[0]).attr("data-year")); var prevYears = []; for(var i=firstYear-1;i>=firstYear-100;i--){ prevYears.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } swiper.prependSlide(prevYears); }else if(slidesLen-activeIndex<20){ var lastYear = parseInt($(swiper.slides[slidesLen-1]).attr("data-year")); var nextYears = []; for(var i=lastYear+1;i<=lastYear+100;i++){ nextYears.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } swiper.appendSlide(nextYears); } // 计算这个月有多少天 currentYear = parseInt($(swiper.slides[activeIndex+2]).attr("data-year")); updateDateSwiper(); } }); var yearSlides = []; for(var i=currentYear-2;i<=currentYear+102;i++){ yearSlides.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } var prevYears = []; for(var i=currentYear-3;i>currentYear-100;i--){ prevYears.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } yearSwiper.appendSlide(yearSlides); yearSwiper.prependSlide(prevYears); monthSwiper = new Swiper(".ys-datetime-month-block .swiper-container", { direction :"vertical", freeMode:true, freeModeMomentumRatio:0.2, loop:true, loopAdditionalSlides:24, freeModeSticky:true, slidesPerView:"auto", onTransitionEnd:function(swiper){ var activeIndex = swiper.activeIndex; if(isNaN(activeIndex)){ return; } // 计算这个月有多少天 currentMonth = parseInt($(swiper.slides[activeIndex+2]).attr("data-month")); updateDateSwiper(); } }); var monthSlides=[]; for(var i=1;i<=12;i++){ monthSlides.push("<div class='swiper-slide' data-month='"+i+"'>"+i+"月</div>"); } monthSwiper.appendSlide(monthSlides); monthSwiper.appendSlide(monthSlides); monthSwiper.appendSlide(monthSlides); dateSwiper = new Swiper(".ys-datetime-date-block .swiper-container", { direction :"vertical", loop : true, freeMode:true, freeModeMomentumRatio:0.2, freeModeSticky:true, slidesPerView:"auto", onTransitionEnd:function(swiper){ var activeIndex = swiper.activeIndex; if(isNaN(activeIndex)){ return; } // 计算这个月有多少天 currentDate = parseInt($(swiper.slides[activeIndex+2]).attr("data-date")); } }); var dateSlides=[]; for(var i=1;i<=currentDayCount;i++){ dateSlides.push("<div class='swiper-slide' data-date='"+i+"'>"+i+"日</div>"); } dateSwiper.appendSlide(dateSlides); } /* ======================================== bind events ======================================== */ function bindEvents(){ container.on("click",function(e){ e.stopPropagation(); e.preventDefault(); container.find(".ys-datetime-selector-content").addClass("datetime-selector-slide-down-out"); }); container.on("click",".ys-datetime-selector-content",function(e){ e.stopPropagation(); e.preventDefault(); }); container.on("click",function(e){e.preventDefault();e.stopPropagation();}); container.on("click",".ys-datetime-cancel-btn",function(e){ e.stopPropagation(); e.preventDefault(); container.find(".ys-datetime-selector-content").addClass("datetime-selector-slide-down-out"); }); container.on("click",".ys-datetime-ok-btn",function(e){ e.stopPropagation(); e.preventDefault(); callback(currentYear,currentMonth,currentDate); container.find(".ys-datetime-selector-content").addClass("datetime-selector-slide-down-out"); }); container.find(".ys-datetime-selector-content").on("animationend webkitAnimationEnd",function(){ if($(this).hasClass("datetime-selector-slide-down-out")){ container.addClass("display-hide"); } $(this).removeClass("datetime-selector-slide-down-in").removeClass("datetime-selector-slide-down-out"); }); } var initialized = false; function init(){ if(initialized){ return; } initialized = true; render(); bindEvents(); } /* ======================================== common methods ======================================== */ function getMaxDateInMonth(year,month){ var date = new Date(); date.setFullYear(year); date.setMonth(month); date.setDate(0); return date.getDate(); } function updateDateSwiper(){ var nextDayCount = getMaxDateInMonth(currentYear,currentMonth); if(currentDayCount>nextDayCount){ for(var i=currentDayCount-1;i>=nextDayCount;i--){ dateSwiper.removeSlide(i); } }else if(currentDayCount<nextDayCount){ for(var i=currentDayCount+1;i<=nextDayCount;i++){ dateSwiper.appendSlide("<div class='swiper-slide' data-date='"+i+"'>"+i+"日</div>"); } } currentDayCount = nextDayCount; currentDate = parseInt($(dateSwiper.slides[dateSwiper.activeIndex+2]).attr("data-date")); } function showDateTime(options){ options = options||{}; var year = options.year; var month = options.month; var date = options.date; var type = options.type||"year-month-date"; if(type=="year-month-date"){ container.find(".ys-datetime-year-block").removeClass("block-hide").removeClass("width-50").removeClass("width-100"); container.find(".ys-datetime-month-block").removeClass("block-hide").removeClass("width-50").removeClass("width-100"); container.find(".ys-datetime-date-block").removeClass("block-hide").removeClass("width-50").removeClass("width-100"); }else if(type=="year-month"){ container.find(".ys-datetime-date-block").addClass("block-hide"); container.find(".ys-datetime-year-block").addClass("width-50").removeClass("width-100").removeClass("block-hide"); container.find(".ys-datetime-month-block").addClass("width-50").removeClass("width-100").removeClass("block-hide"); }else if(type=="year"){ container.find(".ys-datetime-date-block").addClass("block-hide"); container.find(".ys-datetime-month-block").addClass("block-hide"); container.find(".ys-datetime-year-block").addClass("width-100"); } callback = options.callback||callback; currentYear = year||currentYear; currentMonth = month||currentMonth; currentDate = date||currentDate; currentDayCount = getMaxDateInMonth(currentYear,currentMonth); var yearSlidesLength = yearSwiper.slides.length; var minYear = parseInt($(yearSwiper.slides[2]).attr("data-year")); var maxYear = parseInt($(yearSwiper.slides[yearSlidesLength-3]).attr("data-year")); if(currentYear<minYear){ var prevYears = []; for(var i=minYear-3;i>currentYear-20;i--){ prevYears.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } yearSwiper.prependSlide(prevYears); yearSwiper.slideTo(17); }else if(currentYear>maxYear){ var nextSlides = []; for(var i=maxYear+2;i<=currentYear+20;i++){ nextSlides.push("<div class='swiper-slide' data-year='"+i+"'>"+i+"年</div>"); } yearSwiper.appendSlide(nextSlides); yearSwiper.slideTo(currentYear-minYear+1); }else{ yearSwiper.slideTo(currentYear-minYear); } monthSwiper.slideTo(currentMonth+9); dateSwiper.slideTo(currentDayCount-3+currentDate); container.removeClass("display-hide"); container.find(".ys-datetime-selector-content").addClass("datetime-selector-animated").addClass("datetime-selector-slide-down-in"); } var DateTimeWidget = { show:function(options){ init(); showDateTime(options); } }; window.DateTimeWidget = DateTimeWidget; })(jQuery);
datetime.html
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> <meta name="format-detection" content="telephone=no"> <!-- 导入CSS --> <link href="dist/css/swiper.min.css" rel="stylesheet"> <link href="css/common/ys_datetime_selector.css" rel="stylesheet"> <!-- 导入JS --> <script src="dist/js/jquery-1.11.3.min.js"></script> <script src="dist/js/swiper.jquery.min.js"></script> </head> <body> <script src="js/common/ys_datetime_selector.js"></script> <script> DateTimeWidget.show({ year:2018, month:12, date:31, // type:"year", callback:function(year,month,date){ console.log(year+"年"+month+"月"+date+"日"); } }); </script> </body> </html>
以上がHTML5カスタムカレンダーコントロールのサンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

H5とHTML5は、同じこと、つまりHTML5を参照します。 HTML5はHTMLの5番目のバージョンであり、セマンティックタグ、マルチメディアサポート、キャンバスとグラフィックス、オフラインストレージ、ローカルストレージなどの新しい機能をもたらし、Webページの表現力と互換性を向上させます。

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

H5開発で習得する必要があるツールとフレームワークには、Vue.JS、React、Webpackが含まれます。 1.Vue.jsは、ユーザーインターフェイスの構築に適しており、コンポーネント開発をサポートします。 2.複雑なアプリケーションに適した仮想DOMを介したページレンダリングを最適化します。 3.Webpackは、モジュールのパッケージングに使用され、リソースの読み込みを最適化します。

html5hassificlytransformdedwebdeveverment byintroducingsingingelements、endincemultimediasupport、およびrequrovingperformance.1)itmadewebsitesmoreaccessibleandseo-frendlywithsemantelementslike、and.2)

H5は、セマンティック要素とARIA属性を介して、WebページのアクセシビリティとSEO効果を改善します。 1.使用などを使用して、コンテンツ構造を整理し、SEOを改善します。 2。ARIA-LabelなどのARIA属性はアクセシビリティを強化し、支援技術ユーザーはWebページをスムーズに使用できます。

「H5」と「HTML5」はほとんどの場合同じですが、特定の特定のシナリオでは異なる意味を持つ可能性があります。 1。「HTML5」は、新しいタグとAPIを含むW3C定義標準です。 2。 "H5"は通常、HTML5の略語ですが、モバイル開発では、HTML5に基づくフレームワークを参照する場合があります。これらの違いを理解することは、プロジェクトでこれらの用語を正確に使用するのに役立ちます。

H5、またはHTML5は、HTMLの5番目のバージョンです。開発者により強力なツールセットを提供し、複雑なWebアプリケーションを簡単に作成できるようにします。 H5のコア関数には、次のものが含まれます。1)Webページにグラフィックとアニメーションを描画できる要素。 2)Webページ構造をSEOの最適化を明確かつ助長させるなどのセマンティックタグなど。 3)Geolocationapiなどの新しいAPIは、ロケーションベースのサービスをサポートします。 4)互換性テストとポリフィルライブラリを通じて、クロスブラウザーの互換性を確保する必要があります。

H5リンクを作成する方法は?リンクターゲットを決定します。H5ページまたはアプリケーションのURLを取得します。 HTMLアンカーの作成:&lt; a&gt;を使用しますアンカーを作成し、リンクターゲットURLを指定するタグ。リンクプロパティの設定(オプション):必要に応じて、ターゲット、タイトル、およびオンクリックプロパティを設定します。 Webページに追加:リンクを表示するWebページにHTMLアンカーコードを追加します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター
