{"id":437,"date":"2018-06-18T15:53:31","date_gmt":"2018-06-18T14:53:31","guid":{"rendered":"http:\/\/blog.chen-hongyi.com\/?p=437"},"modified":"2018-06-18T15:53:31","modified_gmt":"2018-06-18T14:53:31","slug":"%e5%89%8d%e7%ab%af%e7%bb%84%e4%bb%b6%e5%ba%93-%e6%90%ad%e5%bb%baweb-app%e5%b8%b8%e7%94%a8%e7%9a%84%e6%a0%b7%e5%bc%8f-%e7%bb%84%e4%bb%b6%e7%ad%89%e6%94%b6%e9%9b%86%e5%88%97%e8%a1%a8%e7%a7%bb%e5%8a%a8","status":"publish","type":"post","link":"https:\/\/chen-hongyi.com\/?p=437","title":{"rendered":"\u524d\u7aef\u7ec4\u4ef6\u5e93  \u642d\u5efaweb app\u5e38\u7528\u7684\u6837\u5f0f\/\u7ec4\u4ef6\u7b49\u6536\u96c6\u5217\u8868(\u79fb\u52a8\u4f18\u5148)"},"content":{"rendered":"<p>Link: https:\/\/juejin.im\/post\/5aa77040518825556e5dc057<\/p>\n<p>\u540e\u7aef\u4eba\u5458\u5e38\u7528\u7684\u63d2\u4ef6\u5e93<br \/>\n\u524d\u7aef\u7ec4\u4ef6\u5e93<\/p>\n<p>    \u642d\u5efaweb app\u5e38\u7528\u7684\u6837\u5f0f\/\u7ec4\u4ef6\u7b49\u6536\u96c6\u5217\u8868(\u79fb\u52a8\u4f18\u5148)<\/p>\n<p>8. \u8def\u7531\u548c\u94fe\u63a5(Routing And URLs)<\/p>\n<p>    History.js &#8211; gracefully supports the HTML5 History\/State APIs<br \/>\n    jquery-pjax &#8211; pushState+ajax<br \/>\n    jquery-address &#8211; Deep Linking<br \/>\n    page.js &#8211; Micro client-side router<br \/>\n    crossroads.js<br \/>\n    hash.js<br \/>\n    path.js<br \/>\n    director.js &#8211; \u524d\u7aef\u8def\u7531\u5e93(\u901a\u8fc7#\u7b26\u53f7\u8fdb\u884c\u8def\u5f84\u7ec4\u7ec7,\u7ed3\u5408vue\u7684component\u53ef\u8fdb\u884c\u5355\u9875\u7684\u5c40\u90e8\u6a21\u5757\u5237\u65b0)<br \/>\n    URI.js<br \/>\n    Roadcrew.js<br \/>\n    SpeakingURL<br \/>\n    uparams &#8211; An URL params parser<br \/>\n    StateMan &#8211; \u4e00\u4e2a\u5904\u7406\u6df1\u5c42\u6b21\u5355\u9875\u7cfb\u7edf\u7684\u8def\u7531\u5e93<\/p>\n<p>10. \u8868\u5355\u5904\u7406<br \/>\n10.1 \u8868\u5355\u9a8c\u8bc1(Form Validator)\/\u8868\u5355\u63d0\u793a<\/p>\n<p>    Validator<br \/>\n    Parsley<br \/>\n    jquery.form.js &#8211; jQuery Form Plugin<br \/>\n    Validform<br \/>\n    validator.js<br \/>\n    jquery-validation &#8211; jQuery Validation Plugin<br \/>\n    formvalidator.js<br \/>\n    Fort.js \u2013 \u8868\u5355\u586b\u5199\u8fdb\u5ea6\u63d0\u793a<br \/>\n    mailcheck &#8211; \u7528\u4e8e\u68c0\u6d4bemail\u5730\u5740\u7684\u57df\u540d<br \/>\n    Floatlable.js &#8211; \u8f93\u5165\u65f6\u663e\u793aplaceholder\u6587\u672c<br \/>\n    jQuery Label Better<br \/>\n    validator.js<\/p>\n<p>10.2 < input > \u76f8\u5173<\/p>\n<p>    cleave.js &#8211; \u683c\u5f0f\u5316\u4f60\u7684\u8f93\u5165\u5185\u5bb9<\/p>\n<p>10.3 < select > \u76f8\u5173<\/p>\n<p>    Chosen<br \/>\n    Select2<br \/>\n    bootstrap-select<\/p>\n<p>10.4 \u5355\u9009\u6846\/\u590d\u9009\u6846\u76f8\u5173<\/p>\n<p>    iCheck &#8211; \u589e\u5f3a\u590d\u9009\u6846\u548c\u5355\u9009\u6309\u94ae<br \/>\n    Switchery &#8211; iOS 7 style switches for your checkboxes<\/p>\n<p>10.5 \u4e0a\u4f20\u7ec4\u4ef6<\/p>\n<p>    jQuery File Upload Plugin<br \/>\n    \u767e\u5ea6 Web Uploader<br \/>\n    uploadify<br \/>\n    Plupload<br \/>\n    Fine Uploader<br \/>\n    arale-upload &#8211; \u8f7b\u91cf\u7ea7 iframe and html5 file uploader<br \/>\n    Dropzone.js &#8211; \u6587\u4ef6\u4e0a\u4f20\u5e93(\u53ef\u83b7\u53d6\u6587\u4ef6mime, \u6587\u4ef6\u5927\u5c0f\u7b49; \u9488\u5bf9\u56fe\u7247\u53ef\u751f\u6210\u7f29\u7565\u56fe,\u83b7\u53d6\u56fe\u7247\u5bbd\u5ea6,\u9ad8\u5ea6)<br \/>\n    flow.js<br \/>\n    localResizeIMG &#8211; \u524d\u7aef\u672c\u5730\u5ba2\u6237\u7aef\u538b\u7f29\u56fe\u7247\uff0c\u517c\u5bb9IOS\uff0cAndroid\uff0cPC<br \/>\n    simple-uploader<\/p>\n<p>10.6 \u65e5\u671f\u9009\u62e9<\/p>\n<p>    Both Date and Time picker widget based on twitter bootstrap<br \/>\n    GMU \u65e5\u5386\u7ec4\u4ef6<br \/>\n    Mobiscroll<br \/>\n    Pikaday &#8211; \u65e5\u671f\u9009\u62e9\u5668<br \/>\n    \u4ef7\u683c\u65e5\u5386<br \/>\n        PriceCalendar &#8211; \u9152\u5e97\u4ef7\u683c\u65e5\u5386<br \/>\n            API\u6587\u6863<br \/>\n            DEMO<br \/>\n        price-calendar &#8211; \u4ef7\u683c\u65e5\u5386<br \/>\n        price_calendar &#8211; \u542b\u6709\u5546\u54c1\u4ef7\u683c\u7684\u65e5\u5386\u63a7\u4ef6<\/p>\n<p>10.8 \u6807\u7b7e\u63d2\u4ef6(Tag)<\/p>\n<p>    TaggingJS \u2013 \u53ef\u4ee5\u7075\u6d3b\u5b9a\u5236\u7684 jQuery \u6807\u7b7e\u7cfb\u7edf\u63d2\u4ef6<br \/>\n    selectize.js<br \/>\n    Bootstrap Tags Input<br \/>\n    jQuery-Tags-Input<\/p>\n<p>10.9 \u81ea\u52a8\u5b8c\u6210\u63d2\u4ef6<\/p>\n<p>    At.js &#8211; \u4e00\u4e2aTwitter\/\u5fae\u535a\u6837\u5f0f\u7684@\u81ea\u52a8\u5b8c\u6210\u63d2\u2026<br \/>\n    jquery-textcomplete &#8211; \u667a\u80fd\u641c\u7d22\u63d0\u793a\u6846\/\u81ea\u52a8\u8865\u5168<br \/>\n    typeahead.js &#8211; a fast and fully-featured autocomplete library<\/p>\n<p>10.10 \u6837\u5f0f\u4fee\u6b63<\/p>\n<p>    autosize &#8211; \u4f7f\u6587\u672c\u6846\u81ea\u52a8\u9002\u5e94\u6240\u8f93\u5165\u7684\u5185\u5bb9<\/p>\n<p>12. \u65e5\u671f\u683c\u5f0f\u5316 &#038; \u65f6\u95f4\u8f74<\/p>\n<p>    Moment.js &#8211; \u65e5\u671f\u5904\u7406<br \/>\n    Smart Time Ago &#8211; \u663e\u793a\u76f8\u5bf9\u65f6\u95f4<br \/>\n    timeline.js<br \/>\n    timeago.js<br \/>\n    date-utils &#8211; Date Pollyfills for Node.js and Browser<\/p>\n<p>13. \u9875\u9762\u4ea4\u4e92<br \/>\n13.1 Slider<\/p>\n<p>    slick &#8211; the last carousel you&#8217;ll ever need<br \/>\n    Swipe &#8211; the most accurate touch slider<br \/>\n    Swiper &#8211; Most modern mobile touch slider<br \/>\n    iscroll &#8211; Smooth scrolling for the web<br \/>\n    iSlider &#8211; \u79fb\u52a8\u7aef\u6ed1\u52a8\u7ec4\u4ef6<br \/>\n    OwlCarousel &#8211; create beautiful responsive carousel slider<br \/>\n    jquery-mousewheel &#8211; jQuery\u9f20\u6807\u6eda\u8f6e\u6eda\u52a8\u4fa6\u6d4b\u63d2\u4ef6<br \/>\n    Glide.js &#8211; \u8f7b\u91cf\u7ea7\u6ed1\u5757\u7ec4\u4ef6<br \/>\n    PhotoSwipe<br \/>\n    TouchSlide &#8211; \u89e6\u5c4f\u6ed1\u52a8\u7279\u6548(\u7126\u70b9\u56fe,Tab\u5207\u6362)<\/p>\n<p>13.2 \u7011\u5e03\u6d41<\/p>\n<p>    Masonry<br \/>\n    Isotope &#8211; Filter &#038; sort magical layouts<br \/>\n    Bricklayer<\/p>\n<p>13.3 \u61d2\u52a0\u8f7d\/\u52a0\u8f7d\u76d1\u542c\/\u9884\u52a0\u8f7d<\/p>\n<p>    imagesLoaded<br \/>\n    Echo.js<br \/>\n    lazySizes<br \/>\n    jquery_lazyload<br \/>\n    BttrLazyLoading<br \/>\n    lazyload.js<br \/>\n    layzr.js &#8211; \u4e00\u4e2a\u5c0f\u5de7\u5feb\u901f\u7684\u56fe\u7247\u61d2\u52a0\u8f7d\u5e93<br \/>\n    waitForImages &#8211; \u56fe\u7247\u52a0\u8f7d\u76d1\u542c\u5e93<br \/>\n    PxLoader &#8211; JS\u9884\u52a0\u8f7d\u5e93:\u5b9e\u73b0\u56fe\u7247\u3001\u58f0\u97f3\u7b49\u5404\u79cd\u6587\u4ef6\u7684\u9884\u52a0\u8f7d\u529f\u80fd<br \/>\n    bindWithDelay &#8211; jQuery Plugin For Delayed Event Execution<br \/>\n    TypeWatch &#8211; \u505c\u6b62\u8f93\u5165\u65f6\u8c03\u7528<\/p>\n<p>13.4 \u56fe\u7247\u8f6e\u64ad(\u5e7b\u706f\u7247)\/\u56fe\u7247\u5c55\u793a<\/p>\n<p>    FlexSlider<br \/>\n    unslider &#8211; \u5c0f\u800c\u7f8e\u7684\u8f6e\u64ad\u5e93<br \/>\n    prettyPhoto<br \/>\n    FlickerPlate &#8211; A cool jQuery plugin that lets you flick through content.<br \/>\n    Holder.js &#8211; Client-side image placeholders.<br \/>\n    RowGrid.js &#8211; \u5728\u5f84\u76f4\u7684\u884c\u91cc\u653e\u7f6e\u56fe\u7247<br \/>\n    ImageLightbox.js &#8211; \u706f\u7bb1\u6548\u679c<br \/>\n    JQuery Panorama Viewer &#8211; \u5168\u666f\u89c6\u56fe<br \/>\n    Intense Images &#8211; \u5168\u5c4f\u67e5\u770b\u56fe\u7247<br \/>\n    Picturefill &#8211; \u4e00\u4e2a\u54cd\u5e94\u5f0f\u56fe\u7247 JS \u63d2\u4ef6<br \/>\n    zoom.js &#8211; \u4e00\u4e2a jQuery \u56fe\u7247\u653e\u5927\u63d2\u4ef6<br \/>\n    watermarkjs &#8211; \u4e00\u4e2a\u5728\u6d4f\u89c8\u5668\u4e2d\u6dfb\u52a0\u56fe\u7247\u6c34\u5370\u7684 JS \u5e93<br \/>\n    responsive-images.js<br \/>\n    Turntable.js &#8211; \u8f7b\u6613\u5b9e\u73b0\u56fe\u50cf\u76843D\u65cb\u8f6c<br \/>\n    ResponsifyJS &#8211; \u8ba9\u56fe\u50cf\u5b8c\u5168\u54cd\u5e94\u5f0f\u800c\u4e0d\u4f1a\u727a\u7272\u56fe\u50cf\u7684\u4e3b\u8981\u90e8\u5206<br \/>\n    react-slick &#8211; React \u5b9e\u73b0\u7684\u8f6e\u64ad\u56fe\u63d2\u4ef6<\/p>\n<p>13.5 \u56fe\u7247\u526a\u88c1\/\u56fe\u7247\u5904\u7406<\/p>\n<p>    Jcrop &#8211; Image Cropping Plugin for jQuery<br \/>\n    croppic &#8211; an image cropping jquery plugin<br \/>\n    smartcrop.js &#8211; \u667a\u80fd\u56fe\u7247\u88c1\u526a\u5e93<br \/>\n    jQuery.eraser &#8211; \u56fe\u50cf\u64e6\u9664\u63d2\u4ef6<br \/>\n    DD_belatedPNG.js &#8211; \u8ba9IE6\u652f\u6301\u900f\u660ePNG\u56fe\u7247<br \/>\n    FocusPoint.js \u5b9e\u73b0\u56fe\u7247\u7684\u54cd\u5e94\u5f0f\u88c1\u526a<br \/>\n    imgareaselect<br \/>\n    CSSgram &#8211; CSS \u5b9e\u73b0\u7684 Instagram \u6ee4\u955c\u5e93<br \/>\n    instagram.css &#8211; \u53e6\u4e00\u4e2a CSS \u5b9e\u73b0\u7684 Instagram \u6ee4\u955c\u5e93<br \/>\n    antimoderate &#8211; \u56fe\u7247\u6a21\u7cca\u5e93<\/p>\n<p>13.6 \u8fdb\u5ea6\u6761\/\u52a0\u8f7d\u52a8\u753b(Loading)<\/p>\n<p>    NProgress.js<br \/>\n    progress.js<br \/>\n    Pace &#8211; Automatic page load progress bar<br \/>\n    jquery-ajax-progress<br \/>\n    nanobar &#8211; Very lightweight progress bars.<br \/>\n    waitMe &#8211; \u5f88\u6f02\u4eae\u7684loading\u6548\u679c<br \/>\n    spin.js<br \/>\n    sonic.js<br \/>\n    fakeLoader.js<br \/>\n    loaders.css &#8211; \u4e00\u4e2a\u4e3a\u6027\u80fd\u4f18\u5316\u7684\u5b9e\u73b0\u52a0\u8f7d\u52a8\u753b\u6548\u679c\u7684 CSS \u6846\u67b6<br \/>\n    css-loaders<br \/>\n    Sausage &#8211; \u8ddf\u8e2a\u6eda\u52a8\u6761\u5e76\u8bb0\u5f55\u5f53\u524d\u9605\u8bfb\u6240\u5904\u8282\u70b9<\/p>\n<p>13.8 \u83dc\u5355(Menu)<\/p>\n<p>    SuperFish &#8211; \u57fa\u4e8ejQuery\u7684\u7ea7\u8054\u4e0b\u62c9\u83dc\u5355<br \/>\n    Responsive Nav &#8211; \u54cd\u5e94\u5f0f\u5bfc\u822a<br \/>\n    metisMenu &#8211; A jQuery menu plugin<\/p>\n<p>13.10 \u6eda\u52a8\u52a0\u8f7d\u66f4\u591a\/\u4e0b\u62c9\u5237\u65b0(Pull to Refresh)<\/p>\n<p>    jScroll<br \/>\n    web-pull-to-refresh<br \/>\n    pulltorefresh<br \/>\n    RubberBand.js &#8211; add pull-to-refresh functionality to any page.<\/p>\n<p>13.11 \u5e73\u6ed1\u6eda\u52a8\u63d2\u4ef6(Smooth Scroll)<\/p>\n<p>    jquery-smooth-scroll<br \/>\n    jquery.scrollTo &#8211; \u5e73\u6ed1\u6eda\u52a8\u5230\u9875\u9762\u6307\u5b9a\u4f4d\u7f6e<br \/>\n    smooth-scroll<br \/>\n    scrollUp<br \/>\n    elevator.js &#8211; \u4e00\u4e2a\u6a21\u62df\u7535\u68af\u8fd0\u884c\u201c\u8fd4\u56de\u9876\u90e8\u201d\u7684 JS \u63d2\u4ef6<\/p>\n<p>13.14 \u8f6c\u573a\u6548\u679c<\/p>\n<p>    Animsition &#8211; \u9875\u9762\u5207\u6362\u65f6\u7684\u8fc7\u6e21\u6548\u679c<\/p>\n<p>13.19 \u6eda\u52a8\u6761(Scrollbar)<\/p>\n<p>    jScrollPane<br \/>\n    jquery.scrollbar<br \/>\n    perfect-scrollbar<br \/>\n    nanoScrollerJS<br \/>\n    tinyscrollbar<\/p>\n<p>13.21 \u7f29\u653e (Zooming)<\/p>\n<p>    zoom.js &#8211; \u4e00\u6b3e\u6548\u679c\u5f88\u72ec\u7279\u7684\u9875\u9762\u5185\u5bb9\u7f29\u653e\u63d2\u4ef6<br \/>\n    zoom.js &#8211; \u4e00\u4e2a jQuery \u56fe\u7247\u653e\u5927\u63d2\u4ef6<br \/>\n    jQuery Zoom &#8211; mouseover\u65f6\u56fe\u7247\u7f29\u653e\u6548\u679c<\/p>\n<p>14. \u4ee3\u7801\u9ad8\u4eae\u63d2\u4ef6\/\u4ee3\u7801\u7f16\u8f91\u5668<\/p>\n<p>    google-code-prettify<br \/>\n    highlight.js<br \/>\n    Rainbow<br \/>\n    ACE<br \/>\n    CodeMirror<br \/>\n    Crayon Syntax Highlighter<br \/>\n    prism &#8211; Lightweight, robust, elegant syntax highlighting.<\/p>\n<p>15. UI Icon \u7ec4\u4ef6<\/p>\n<p>    Font Awesome<br \/>\n    Glyphter: The SVG Font Machine<br \/>\n    Perfect Icons<br \/>\n    iconizr<br \/>\n    Cikonss &#8211; \u7eafCSS\u5b9e\u73b0\u7684\u54cd\u5e94\u5f0fIcon<br \/>\n    Simple Icons<\/p>\n<p>16. \u52a8\u753b(Animate)<\/p>\n<p>    animate.css &#8211; A cross-browser library of CSS animations.<br \/>\n    Transit &#8211; CSS transitions and transformations for jQuery<br \/>\n    anime.js &#8211; Javascript \u52a8\u753b\u5f15\u64ce<br \/>\n    WOW &#8211; \u5728\u6eda\u52a8\u8fc7\u7a0b\u4e2d\u5c55\u793aCSS\u52a8\u753b\u6548\u679c(\u9ed8\u8ba4\u89e6\u53d1animate.css\u52a8\u753b)<br \/>\n    AniJS &#8211; A Library to Raise your Web Design without Coding<br \/>\n    Move.js &#8211; \u7b80\u5316CSS3\u52a8\u753b\u7684JS\u5e93<br \/>\n    ScrollMe \u2013 \u5728\u7f51\u9875\u4e2d\u52a0\u5165\u5404\u79cd\u6eda\u52a8\u52a8\u753b\u6548\u679c<br \/>\n    Effeckt.css &#8211; A Performant Transitions and Animations Library<br \/>\n    NEC\u52a8\u753b\u5e93<br \/>\n    csshake &#8211; CSS classes to move your DOM<br \/>\n    magic &#8211; CSS3 Animations with special effects<br \/>\n    SpinKit<br \/>\n    Velocity.js &#8211; \u52a0\u901fJavaScript\u52a8\u753b<br \/>\n    lenticular.js &#8211; \u54cd\u5e94\u503e\u659c\u6216\u9f20\u6807\u4e8b\u4ef6\u521b\u5efa\u56fe\u7247\u52a8\u753b<br \/>\n    jQuery Interactive 3D &#8211; Create a 3D interactive object using images<br \/>\n    AnimateScroll &#8211; A Simple jQuery Plugin for Animating Scroll<br \/>\n    Blast.js &#8211; \u628a\u52a8\u753b\u548c\u6837\u5f0f\u6ce8\u5165\u5230\u6587\u672c\u4e2d<br \/>\n    Bounce.js &#8211; \u4e00\u4e2a\u7528\u4e8e\u5236\u4f5c\u6f02\u4eae CSS3 \u5173\u952e\u5e27\u52a8\u753b\u7684 JS \u5e93<br \/>\n    Sticker.js &#8211; create a Sticker Effect<br \/>\n    scrollReveal.js &#8211; \u5143\u7d20\u8fdb\u5165\u53ef\u89c6\u533a\u57df\u81ea\u52a8\u89e6\u53d1\u8bbe\u7f6e\u597d\u7684\u52a8\u753b<br \/>\n    stroll.js &#8211; CSS3 list scroll effects<br \/>\n    jQuery Easing &#8211; \u52a8\u753b\u6548\u679c\u6269\u5c55<br \/>\n    animations &#8211; CSS3 ANIMATION CHEAT SHEET<br \/>\n    iconate.js\uff1a\u5c06 icons \u589e\u52a0\u52a8\u753b\u6548\u679c\u7684 JS \u5e93<br \/>\n    Odometer &#8211; \u6570\u5b57\u4e4b\u95f4\u7684\u5782\u76f4\u5207\u6362<br \/>\n    Hover &#8211; \u60ac\u505c\u6548\u679c<br \/>\n        Hover.css &#8211; \u5f88\u591a\u9f20\u6807Hover\u6001\u7684\u6548\u679c<br \/>\n        imagehover.css &#8211; \u4e3a\u56fe\u7247\u6dfb\u52a0\u60ac\u505c\u6548\u679c<br \/>\n        iHover &#8211; \u56fe\u7247\u60ac\u505c\u6548\u679c<br \/>\n        ImageCaptionHoverAnimation<br \/>\n        Bootstrap Hover Image Gallery<br \/>\n    Multi-touch gestures library &#8211; Web\u624b\u52bf\u5e93<br \/>\n        AlloyFinger &#8211; \u817e\u8baf AlloyTeam \u51fa\u54c1\u7684\u8d85\u7ea7\u5c0f\u7684 Web \u624b\u52bf\u5e93<\/p>\n<p>19. \u901a\u77e5\u7ec4\u4ef6\/\u5f39\u6846\u7ec4\u4ef6\/\u6a21\u6001\u7a97\u53e3<\/p>\n<p>    Notify.js(Web Notifications API)<br \/>\n    alertify.js<br \/>\n    AlertifyJS<br \/>\n    SweetAlert<br \/>\n    Messenger &#8211; \u975e\u5e38\u9177\u7684\u5f39\u6846\u7ec4\u4ef6<br \/>\n    PNotify<br \/>\n    Notify.js &#8211; A simple, versatile notification library<br \/>\n    Remodal &#8211; \u6a21\u6001\u7a97\u53e3\u63d2\u4ef6<br \/>\n    action.js &#8211; \u6781\u7b80\u7684tip\u548cModal\u5f39\u7a97\u6548\u679c<br \/>\n    Modaal &#8211; \u4e00\u4e2a\u521b\u5efa\u5f39\u51fa\u7a97\u53e3\u7684jQuery\u63d2\u4ef6<br \/>\n    Vex &#8211; \u53ef\u4ee5\u5b9e\u73b03D\u52a8\u6548\u7684\u5f39\u51fa\u5bf9\u8bdd\u6846\u5806\u53e0\u6548\u679c<\/p>\n<p>20. \u63d0\u793a\u63a7\u4ef6(Tooltips)<\/p>\n<p>    hint.css &#8211; \u4e00\u6b3e\u975e\u5e38\u5c0f\u5de7\u7684\u63d0\u793a\u6846\u6548\u679c<br \/>\n    qTip2 &#8211; Pretty powerful tooltips<br \/>\n    tooltip &#8211; CSS Tooltips<br \/>\n    tooltipster &#8211; A jQuery tooltip plugin<br \/>\n    grumble.js &#8211; \u6c14\u6ce1\u5f62\u72b6\u7684\u63d0\u793a\uff08Tooltip\uff09\u63a7\u4ef6<br \/>\n    Ouibounce &#8211; \u79bb\u7ad9\u63d0\u793a\u63a7\u4ef6<br \/>\n    intro.js &#8211; \u4e00\u4e2a\u521b\u5efa\u5f15\u5bfc\u5f0f\u7f51\u7ad9\u4ecb\u7ecd\u529f\u80fd\u7684 JS \u5e93<br \/>\n    data-tip.css &#8211; \u7eaf CSS \u5b9e\u73b0\u7684\u5de5\u5177\u63d0\u793a<\/p>\n<p>21. \u5bf9\u8bdd\u6846\/\u906e\u7f69\u5c42\/\u5f39\u51fa\u5c42(lightbox)<\/p>\n<p>    fancyBox &#8211; Fancy jQuery lightbox<br \/>\n    jquery-lightbox &#8211; The popular lightbox script, ported to jQuery<br \/>\n    Colorbox &#8211; a jQuery lightbox<br \/>\n    artDialog &#8211; \u7ecf\u5178\u7684\u7f51\u9875\u5bf9\u8bdd\u6846\u7ec4\u4ef6<br \/>\n    DialogEffects<br \/>\n    jQuery blockUI &#8211; Page or element overlay<br \/>\n    layer &#8211; web\u5f39\u51fa\u7a97\/\u5c42<\/p>\n<p>22. \u6587\u6863\/\u8868\u683c\/PDF<\/p>\n<p>    Backgrid.js &#8211; \u5f3a\u5927\u7684\u8868\u683c\u7ec4\u4ef6<br \/>\n    handsontable &#8211; \u5728\u7ebf\u53ef\u7f16\u8f91excel\u8868\u683c<br \/>\n    jQuery Bootgrid &#8211; \u7528\u4e8eajax\u751f\u6210\u52a8\u6001\u8868\u683c<br \/>\n    DataTables &#8211; Table plug-in for jQuery<br \/>\n    PDF.js &#8211; \u4e00\u4e2a JavaScript \u7f16\u5199\u7684 PDF \u9605\u8bfb\u5668<br \/>\n    jsPDF &#8211; Generate PDF files in JavaScript<br \/>\n    Recline.js &#8211; \u7075\u6d3b\u64cd\u4f5c\u548c\u5c55\u793a\u6570\u636e<br \/>\n    Dynatable &#8211; \u4ea4\u4e92\u5f0f\u8868\u683c\u63d2\u4ef6<br \/>\n    fattable &#8211; \u521b\u5efa\u65e0\u9650\u6eda\u52a8\u65e0\u9650\u884c\u5217\u6570\u7684\u8868\u683c<br \/>\n    Clusterize.js &#8211; \u4e00\u4e2a\u8f7b\u677e\u663e\u793a\u5927\u6570\u636e\u96c6\u7684 JS \u63d2\u4ef6<br \/>\n    Uniform -\u8868\u5355\u7f8e\u5316\u63d2\u4ef6<br \/>\n    tableExport &#8211; \u5bfc\u51faHTML Table\u4e3a Excel\u3001PDF \u7b49<\/p>\n<p>23. \u76ee\u5f55\u6811\u63d2\u4ef6<\/p>\n<p>    zTree_v3 &#8211; jQuery Tree Plugin<br \/>\n    jstree &#8211; jQuery Tree Plugin<br \/>\n    fancytree &#8211; Tree plugin for jQuery<\/p>\n<p>24. \u524d\u540e\u7aef\u4ea4\u4e92<br \/>\n24.1 Ajax\u6a21\u5757<\/p>\n<p>    fetch &#8211; A window.fetch JavaScript polyfill<br \/>\n    reqwest &#8211; browser asynchronous http requests<br \/>\n    ajax &#8211; Standalone AJAX library<br \/>\n    then-request<br \/>\n    browser-request<br \/>\n    superagent<br \/>\n    minAjax.js<br \/>\n    qwest &#8211; \u7b2c\u4e09\u65b9\u7684Ajax\u5e93<br \/>\n    axios &#8211; Promise based HTTP client for the browser and node.js<br \/>\n    whatwg-fetch<br \/>\n    jsonp &#8211; A simple JSONP implementation<br \/>\n    isomorphic-fetch &#8211; Isomorphic WHATWG Fetch API, for Node &#038; Browserify<\/p>\n<p>25. \u97f3\u9891\/\u89c6\u9891<\/p>\n<p>    jPlayer &#8211; HTML5 Audio &#038; Video for jQuery<br \/>\n    video.js &#8211; HTML5 &#038; Flash video player<br \/>\n    Accessible HTML5 Video Player &#8211; PayPal \u5f00\u6e90\u7684 HTML5 \u89c6\u9891\u64ad\u653e\u5668<br \/>\n    Clappr &#8211; \u5f00\u6e90\u7684Web\u89c6\u9891\u64ad\u653e\u5668<br \/>\n    Plyr &#8211; A simple HTML5 media player<br \/>\n    FitVids.js &#8211; A lightweight, easy-to-use jQuery plugin for fluid width video embeds.<br \/>\n    BigVideo.js &#8211; The jQuery Plugin for Big Background Video<br \/>\n    BigScreen &#8211; A simple library for using the JavaScript Full Screen API<br \/>\n    Vide &#8211; \u89c6\u9891\u80cc\u666f<br \/>\n    winamp2-js<br \/>\n    Buzz &#8211; A Javascript HTML5 Audio library<br \/>\n    MediaElement.js<\/p>\n<p>27. \u5bcc\u6587\u672c\u7f16\u8f91\u5668\/Markdown\u7f16\u8f91\u5668\/Markdown\u89e3\u6790\u5668<\/p>\n<p>    Simditor &#8211; \u7b80\u5355\u5feb\u901f\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u5668<br \/>\n    BachEditor &#8211; \u4e00\u4e2a\u6709\u60c5\u6000\u7684\u7f16\u8f91\u5668<br \/>\n    TinyMCE<br \/>\n    bootstrap-markdown<br \/>\n    marked &#8211; markdown\u89e3\u6790\u5668<br \/>\n    Markdown Plus<br \/>\n    Editor.md &#8211; \u5f00\u6e90\u5728\u7ebfMarkdown\u7f16\u8f91\u5668<br \/>\n    stackedit<br \/>\n    Redactor Text Editor<br \/>\n    micromarkdown.js &#8211; \u8f7b\u91cf\u7ea7\u7684md\u89e3\u6790\u5668<br \/>\n    wangEditor &#8211; \u652f\u6301\u79fb\u52a8\u7aef\u7684\u8f7b\u91cf\u7ea7web\u5bcc\u6587\u672c\u6846<br \/>\n    CKEditor &#8211; \u53ef\u89c6\u5316 HTML \u7f16\u8f91\u5668<br \/>\n    Quill &#8211; \u5bcc\u6587\u672c\u7f16\u8f91\u5668<\/p>\n<p>30. \u9009\u9879\u5361(Tabs)<\/p>\n<p>    Easy Responsive Tabs to Accordion<br \/>\n    Responsive-Tabs<br \/>\n    ion.tabs &#8211; jQuery tabs plugin<br \/>\n    jQuery-EasyTabs<br \/>\n    tabulous.js<\/p>\n<p>31. \u6587\u672c\u5904\u7406<\/p>\n<p>    ZeroClipboard &#8211; \u6587\u672c\u590d\u5236\u63d2\u4ef6<br \/>\n    clipboard.js<br \/>\n    Bigfoot &#8211; \u70b9\u51fb\u6587\u7ae0\u4e2d\u7684\u811a\u6ce8\u5f39\u7a97\u663e\u793a<br \/>\n    Annotator &#8211; \u6587\u672c\u6ce8\u89e3\u63d2\u4ef6\uff0c\u53ef\u4ee5\u5305\u62ec\u6ce8\u91ca\u3001\u6807\u7b7e\u3001\u7528\u6237\u7b49<br \/>\n    Succinct &#8211; \u7528\u4f5c\u622a\u65ad\u591a\u884c\u6587\u672c,\u540e\u9762\u6dfb\u52a0\u7701\u7565\u53f7<br \/>\n    Flowtype.js &#8211; \u81ea\u52a8\u8c03\u6574\u5b57\u4f53\u5927\u5c0f\u548c\u884c\u53f7<br \/>\n    flat-shadow<br \/>\n    FitText &#8211; A jQuery plugin for inflating web type<br \/>\n    shine.js &#8211; \u5b9e\u73b0\u6f02\u4eae\u9634\u5f71<br \/>\n    Type Rendering Mix &#8211; \u6587\u672c\u6e32\u67d3\u5f15\u64ce<br \/>\n    jquery-expander &#8211; \u9605\u8bfb\u66f4\u591a<br \/>\n    Typed.js &#8211; \u8f93\u5165\u6a21\u62df\u63d2\u4ef6<br \/>\n    jQuery.dotdotdot &#8211; \u591a\u884c\u6587\u672c\u6ea2\u51fa\u663e\u793a\u7701\u7565\u53f7<br \/>\n    baffle.js &#8211; \u6587\u672c\u4e92\u52a8\u6548\u679c<\/p>\n<p>33. \u6f14\u793a\/\u5e7b\u706f\u7247<\/p>\n<p>    reveal.js &#8211; The HTML Presentation Framework<br \/>\n    bespoke.js &#8211; DIY Presentation Micro-Framework<br \/>\n    impress.js<br \/>\n    shower<br \/>\n    deck.js<\/p>\n<p>34. \u56fd\u9645\u5316(i18n)<\/p>\n<p>    jquery-i18n<br \/>\n    i18next.js<br \/>\n    jsperanto.js<br \/>\n    jed.js<br \/>\n    messageformat.js<br \/>\n    Polyglot.js<\/p>\n<p>35. \u90ae\u4ef6\u6a21\u677f(Email Templates)<\/p>\n<p>    responsive-html-email-template<\/p>\n<p>37. HTTP\u8bf7\u6c42\u76f8\u5173<\/p>\n<p>    pako &#8211; HTTP \u8bf7\u6c42\u6b63\u6587\u538b\u7f29<br \/>\n        \u53c2\u8003\u9605\u8bfb: \u5982\u4f55\u538b\u7f29 HTTP \u8bf7\u6c42\u6b63\u6587<br \/>\n        HTTP \u8bf7\u6c42\u6b63\u6587\u538b\u7f29 DEMO<\/p>\n<p>38. \u4e0b\u8f7d\u7ec4\u4ef6<\/p>\n<p>    download<br \/>\n    Downloadify<\/p>\n<p>39. \u52a0\u5bc6\/\u8f6c\u7801<\/p>\n<p>    crypto-js &#8211; JavaScript library of crypto standards.<br \/>\n    ulid &#8211; \u751f\u6210UUID\u7c7b\u5e93<br \/>\n    RSA in JavaScript &#8211; \u7528RSA\u52a0\u5bc6\u5b9e\u73b0Web\u6570\u636e\u52a0\u5bc6\u4f20\u8f93<\/p>\n<p>41. \u5b9e\u7528\u5de5\u5177\/\u5176\u4ed6\u63d2\u4ef6<\/p>\n<p>    jquery-cookie<br \/>\n    JavaScript Cookie<br \/>\n    InstantClick &#8211; \u9884\u52a0\u8f7d\u7528\u6237\u53ef\u80fd\u4f1a\u70b9\u51fb\u7684\u4e00\u4e9b\u94fe\u63a5<br \/>\n    Async.js &#8211; \u5f02\u6b65\u64cd\u4f5c<br \/>\n    html2canvas &#8211; \u5b9e\u73b0\u7eafJS\u7f51\u9875\u622a\u56fe<br \/>\n    jquery.qrcode.js &#8211; \u751f\u6210\u4e8c\u7ef4\u7801\u7684 jQuery \u63d2\u4ef6<br \/>\n    qrcodejs &#8211; JS\u751f\u6210QRCode\u7684\u5e93<br \/>\n    nakedpassword &#8211; \u7528\u8131\u8863\u5973\u5e2e\u52a9\u68c0\u6d4b\u5bc6\u7801\u5f3a\u5ea6<br \/>\n    KityMinder &#8211; \u8111\u56fe\u7f16\u8f91\u5de5\u5177<br \/>\n    MixitUp &#8211; \u52a8\u753b\u8fc7\u6ee4\u548c\u6392\u5e8f<br \/>\n    JQuery Tip Cards &#8211; \u521b\u5efa\u5361\u7247\u4ea4\u4e92\u7684cards\u5e03\u5c40<br \/>\n    Fallback.js &#8211; JavaScript library for dynamically loading CSS and JS files.<br \/>\n    swfobject<br \/>\n    prettyprint.js &#8211; An in-browser JavaScript variable dumper<br \/>\n    Shepherd &#8211; \u4e3a\u5e94\u7528\u521b\u5efa\u7528\u6237\u6307\u5357<br \/>\n    RulersGuide.js &#8211; \u7c7b\u4f3cPhotoShop\u6807\u5c3a\u7684js\u5e93<br \/>\n    Gremlins.js &#8211; Monkey \u6d4b\u8bd5\u5e93<br \/>\n    RoughDraft.js &#8211; \u7b80\u5355\u5feb\u901f\u7684\u521b\u5efa\u4ea4\u4e92\u5f0f\u7684 HTML \u6a21\u578b\u7684\u539f\u578b\u5de5\u5177<br \/>\n    favico.js &#8211; \u52a8\u6001\u6539\u53d8\u6d4f\u89c8\u5668\u6807\u7b7e\u680f\u4e2d\u7684\u7f51\u7ad9\u56fe\u6807<br \/>\n    pageguide &#8211; \u7f51\u9875\u5411\u5bfc<br \/>\n    jsdiff &#8211; js diff \u7b97\u6cd5<\/p>\n<p>\u5728\u7ebf\u5de5\u5177( Online Tools )<\/p>\n<p>    jsbin &#8211; Collaborative JavaScript Debugging App<br \/>\n        jsbin@Github<br \/>\n    jsfiddle<br \/>\n    jsbeautifier &#8211; Online JavaScript beautifier<br \/>\n    resume.github.com<\/p>\n<p>\u524d\u7aef\u5f00\u53d1\u5de5\u5177<br \/>\n1. \u5f00\u53d1\u5de5\u5177<\/p>\n<p>    Sublime Text<\/p>\n<p>2. \u8c03\u8bd5\u5de5\u5177<\/p>\n<p>    Fiddler<br \/>\n    Weinre<br \/>\n    Rythem<br \/>\n    csscss &#8211; \u7528\u4e8e\u68c0\u67e5css\u4ee3\u7801\u5197\u4f59<br \/>\n    FECS &#8211; \u57fa\u4e8e Node.js \u7684\u524d\u7aef\u4ee3\u7801\u68c0\u67e5\u5de5\u5177<br \/>\n    JSON Server &#8211; \u6a21\u62df API<br \/>\n    swagger-ui &#8211; \u57fa\u4e8eREST\u7684API\u6d4b\u8bd5\/\u6587\u6863<\/p>\n<p>3. \u6a21\u62df\u6570\u636e( Fake )<\/p>\n<p>    JSONPlaceholder<br \/>\n    json-server &#8211; Get a full fake REST API<br \/>\n    lowdb &#8211; A small local JSON database powered by lodash<br \/>\n    Mock.js &#8211; \u4e00\u6b3e\u6a21\u62df\u6570\u636e\u751f\u6210\u5668\uff0c\u65e8\u5728\u5e2e\u52a9\u524d\u7aef\u653b\u57ce\u5e08\u72ec\u7acb\u4e8e\u540e\u7aef\u8fdb\u884c\u5f00\u53d1\uff0c\u5e2e\u52a9\u7f16\u5199\u5355\u5143\u6d4b\u8bd5<\/p>\n<p>4. \u63a5\u53e3\u7ba1\u7406<\/p>\n<p>    RAP &#8211; Web\u63a5\u53e3\u7ba1\u7406\u5de5\u5177\uff0c\u5f00\u6e90\u514d\u8d39\uff0c\u63a5\u53e3\u81ea\u52a8\u5316\uff0cMOCK\u6570\u636e\u81ea\u52a8\u751f\u6210\uff0c\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4f01\u4e1a\u7ea7\u7ba1\u7406<\/p>\n<p>5. \u6d4f\u89c8\u5668\u6269\u5c55(Chrome Extensions)<\/p>\n<p>    Postman &#8211; REST Client<br \/>\n    Fiddler &#8211; Fiddler for Chrome Extension<br \/>\n    WEB\u524d\u7aef\u52a9\u624b(FeHelper)<br \/>\n    Web Developer<br \/>\n    Wappalyzer &#8211; \u5206\u6790\u7f51\u7ad9\u5e94\u7528\u7684\u6280\u672f\u6808<br \/>\n    HTTP Status<br \/>\n    Chrome Logger<br \/>\n    ColorZilla<br \/>\n    ColorPick Eyedropper<br \/>\n    Code Cola<br \/>\n    1px<br \/>\n    AlloyDesigner &#8211; \u524d\u7aef\u91cd\u6784\u5f00\u53d1\u8f85\u52a9\u5de5\u5177<br \/>\n    Fontface Ninja<br \/>\n    PageSpeed Insights (by Google)<br \/>\n    Redirect Path<br \/>\n    Responsive Web Design Tester<br \/>\n    Window Resizer<br \/>\n    CSSViewer<br \/>\n    IE Tab<br \/>\n    Clear Cache<br \/>\n    JSONView<br \/>\n    Image Downloader<br \/>\n    Pretty Beautiful Javascript &#8211; \u53ef\u4ee5\u81ea\u52a8\u683c\u5f0f\u5316\u6df7\u6dc6\u7684js\u6587\u4ef6<br \/>\n    JavaScript Errors Notifier<br \/>\n    CSS Diff &#8211; \u5728\u7ebf\u6bd4\u5bf9\u9875\u9762\u4e0a\u4e24\u4e2a\u5143\u7d20\u7684CSS\u6837\u5f0f\u5dee\u5f02<br \/>\n    WhatFont- \u8bc6\u522b\u7f51\u9875\u6240\u4f7f\u7528\u7684\u5b57\u4f53<\/p>\n<p>\u524d\u7aef\u53c2\u8003\u96c6<\/p>\n<p>    frontend-guidelines &#8211; Some HTML, CSS and JS best practices.<br \/>\n    frontend-dev-bookmarks<br \/>\n    Codrops &#8211; Useful resources<br \/>\n    Front-end Code Standards &#038; Best Practices<br \/>\n    awesome-javascript<br \/>\n    Front-end-tutorial &#8211; \u524d\u7aef\u6d89\u53ca\u7684\u6240\u6709\u77e5\u8bc6\u4f53\u7cfb<br \/>\n    awesome-vue<br \/>\n    \u524d\u7aef\u7f16\u7801\u89c4\u8303( Standard Style )<br \/>\n        Airbnb \u7684 JavaScript \u7f16\u7801\u89c4\u8303<br \/>\n        JavaScript Standard Style<br \/>\n    clean-code-javascript &#8211; javascript \u7f16\u7801\u98ce\u683c\u6307\u5357<br \/>\n    cheatsheet &#8211; \u6807\u7b7e\u7684\u5185\u5bb9\u6e05\u5355<br \/>\n    Front-End-Checklist &#8211; The perfect Front-End Checklist for modern websites and meticulous developers http:\/\/frontendchecklist.com<\/p>\n<p>\u4e66\u7c4d( Frontend-related Books )<\/p>\n<p>    Front-End Developer Handbook 2016<br \/>\n    Front-End Developer Handbook 2017<br \/>\n    \u524d\u7aef\u5de5\u7a0b\u5e08\u624b\u518c<br \/>\n    \u524d\u7aef\u5de5\u7a0b\u5e08\u624b\u518c &#8211; \u5305\u62ec\u524d\u7aef\u5f00\u53d1\u5b9e\u8df5\u3001\u5b66\u4e60\u524d\u7aef\u5f00\u53d1\u3001\u524d\u7aef\u5f00\u53d1\u5de5\u5177<\/p>\n<p>\u539f\u6587\uff1agithub.com\/JingwenTian\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Link: https:\/\/juejin.im\/post\/5aa77040518 &hellip; <a href=\"https:\/\/chen-hongyi.com\/?p=437\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[74],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-74"],"_links":{"self":[{"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=437"}],"version-history":[{"count":1,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":438,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=\/wp\/v2\/posts\/437\/revisions\/438"}],"wp:attachment":[{"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chen-hongyi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}