自定义嵌入一个tomcat | 可设置自定义html模板,设置请求路径

news/2024/5/6 14:20:36/文章来源:https://blog.csdn.net/Susan003/article/details/126664585

一个小小好玩的demo,
并可设置自定义html模板
以及设置请求路径

效果图:
在这里插入图片描述

自定义嵌入一个tomcat

  • 导入依赖jar包
  • 项目结构介绍
    • annotation包
      • PackageServlet
      • TomcatRequestMapping
    • components包
      • DocServlet.html
    • read包
      • ReadPackageServlet
    • servlet包
      • DocServlet
    • status包
      • ReptileStatus
    • util包
      • ClassUtil
      • SelfStartingUtil
      • ServletUtil
    • vo包
      • ServletVo
      • TomcatPrintVo
    • 主启动类
      • MyTomcat
    • test包
      • MyTest

导入依赖jar包

		<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version><scope>provided</scope></dependency><dependency><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.1</version></dependency>

项目结构介绍

   annotation 自定义注解类 用于设置请求路径,以及读取文件路径components html模板,加载到tomcatread 对注解的解析类servlet 对应html模板 两者必须同名status 一些状态值test 测试入口类util 工具类vo 对象MyTomcat 主要启动类

在这里插入图片描述

annotation包

PackageServlet

package com.demo.annotation;import java.lang.annotation.*;/*** 读取对应的servlet路径和模板路径*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PackageServlet {/*servlet 对应的包名*/String servletPack();/* 模板对应的包名*/String componentsPack();
}

TomcatRequestMapping

package com.demo.annotation;import java.lang.annotation.*;/*** @author tanyongpeng* <p>设置servlet请求路径</p>**/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TomcatRequestMapping {String[] value();}

components包

DocServlet.html

<!doctype html>
<!--[if lt IE 8 ]><html lang="en" class="ie7"> <![endif]-->
<!--[if IE 8 ]><html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9 ]><html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head><meta charset="utf-8"><meta name="author" content=""><meta name="keywords" content=""><meta name="viewport" content="width=device-width, initial-scale=1"><title>文档测试</title><!-- main JS libs --><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/js/jquery-1.11.0.min.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/js/jquery-ui.min.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/js/bootstrap.min.js"></script><!-- Style CSS --><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/bootstrap.css" media="screen" rel="stylesheet"><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/style.css" media="screen" rel="stylesheet"><!-- scripts --><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/general.js"></script><!-- Scroll Bars --><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.mousewheel.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.jscrollpane.min.js"></script><script>jQuery(function() {jQuery('.scrollbar').jScrollPane({autoReinitialise: true,verticalGutter: 0});});</script><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/prettyPhoto.css" rel="stylesheet"><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.prettyPhoto.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.carouFredSel-6.2.1-packed.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.touchSwipe.min.js"></script><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jplayer.css" rel="stylesheet"><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.jplayer.min.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jplayer.playlist.min.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.transform2d.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/jquery.grab.js"></script><script src="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/mod.csstransforms.min.js"></script><script src="../funky-tunes-css/js/jplayer/circle.player.js"></script><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/prettify.css" rel="stylesheet"><link href="https://thisuseravatar.oss-cn-guangzhou.aliyuncs.com/ladybugDoc/css/docs.css" media="screen" rel="stylesheet"></head><body>
<div class="body-wrap"><header class="header-demo"><div class="inner gradient"><!-- container --><div class="container"><!-- row --><div class="row"><div class="col-sm-3"><div class="logo"><img src="images/logo.png" alt="" /></div></div><div class="col-sm-9"><h1>Ladybug Plugin</h1><span>Version: 0.0.1</span><span>Last update: 18.08.2022</span></div></div><!--/ row--></div><!--/ container --></div></header><!-- container --><div class="container"><!-- row --><div class="row"><div class="col-sm-3"><div class="sidebar-demo hidden-print" role="complementary" data-spy="affix" data-offset-top="200"><ul class="nav"><li><a href="#about">What is Funky Tunes</a></li><li><a href="#what-included">What is included</a></li><li><a href="#browser">Browser support</a></li><li><a href="#getting-started">Getting Started</a></li><li><a href="#template">Basic Template</a></li><li><a href="#typography">Typography</a></li><li><a href="#buttons">Components</a><ul class="nav"><li><a href="#buttons">Buttons</a><ul class="nav"><li><a href="#buttons-simple">Simple Buttons</a></li><li><a href="#buttons-transparent">Transparent Buttons</a></li><li><a href="#buttons-sized">Different sizes</a></li><li><a href="#buttons-shaped">Shaped Buttons</a></li><li><a href="#buttons-icons">Buttons with Icons</a></li><li><a href="#buttons-input">Buttoned Input</a></li></ul></li><li><a href="#rating-stars">Rating Stars</a></li><li><a href="#scroll-bars">Scroll Bars</a></li><li><a href="#navigation">Navigation</a></li><li><a href="#tabs">Tabs</a></li></ul></li><li><a href="#post-tabs">Widgets</a><ul class="nav"><li><a href="#post-tabs">Post Tabs</a></li><li><a href="#pricing">Pricing Items</a><ul class="nav"><li><a href="#pricing3">Pricing style 3</a></li></ul></li><li><a href="#content-box">Content Box</a></li><li><a href="#video-player">Video Player</a></li><li><a href="#audio-player">Audio Players</a><ul class="nav"><li><a href="#audio-player-circle">Circle Player</a></li></ul></li><li><a href="#user-profile">User Profile</a></li><li><a href="#statistics">Statistics</a></li><li><a href="#widget-schedule">Schedule</a></li><li><a href="#charts">Charts</a><ul class="nav"><li><a href="#charts-top3">Top 3 chart</a></li></ul></li></ul></li></ul></div></div><div class="col-sm-9"><!-- content --><div class="content-demo" role="main"><!-- What is this --><div class="section-demo"><h2 id="about">What is Funky Tunes UI Kit</h2><div class="description"><p> Funky Tunes UI Kit  is a number of useful user interface components built on <a href="http://getbootstrap.com" target="_blank">Bootstrap 3</a> framework. We did not modify any line of Bootstrap, so you can safely use Funky Tunes UI Kit in your ongoing project.</p></div></div><!--/ What is this --><!-- What's included --><div class="section-demo"><h2 id="what-included">What is included</h2><div class="description"><p>Once purchased, unzip the compressed folder to see the directory structure of Funky Tunes UI Kit. You'll see something like this:</p></div><div class="example"><div class="example-code"><pre class="prettyprint">
funky-tunes
├───docs
│   ├───css
│   ├───images
│   └───js
├───funky-tunes-css
│   ├───css
│   ├───fonts
│   │   └───video-js
│   │   └───icons-small
│   ├───images
│   │   ├───icons
│   │   ├───prettyPhoto
│   │   └───temp
│   └───js
│       └───libs
│       └───jplayer
└───funky-tunes-less├───fonts│   └───video-js│   └───icons-small├───images│   ├───icons│   ├───prettyPhoto│   └───temp├───js│   └───libs│   └───jplayer└───less└───bootstrap</pre></div></div><div class="description"><dl class="clearfix"><dt class="parent">docs/</dt><dd>contains this documentation.</dd><dt class="parent">funky-tunes-css/</dt><dd>contains Funky Tunes UI Kit in simple CSS format. Use it to easily start your project.</dd><dt>css/</dt><dd>contains all the stylesheets for CSS version of the kit.</dd><dt>fonts/</dt><dd>contains Bootstrap Glyphicons for CSS version of the kit.</dd><dt>fonts/video-js/</dt><dd>contains Video Player icons for CSS version of the kit.</dd><dt>fonts/icons-small/</dt><dd>contains Font icons for CSS version of the kit.</dd><dt>images/</dt><dd>contains all the images for CSS version of the kit.</dd><dt>images/icons/</dt><dd>contains all the icons for CSS version of the kit.</dd><dt>images/temp/</dt><dd>contains all the temporary images for CSS version of the kit.</dd><dt>js/</dt><dd>contains all the JS files for CSS version of the kit.</dd><dt class="parent">funky-tunes-less/</dt><dd>contains Funky Tunes UI Kit in LESS format. Use it to modify this kit in your project.</dd><dt>fonts/</dt><dd>contains Bootstrap Glyphicons for LESS version of the kit.</dd><dt>fonts/video-js/</dt><dd>contains Video Player icons for LESS version of the kit.</dd><dt>fonts/icons-small/</dt><dd>contains Font icons for LESS version of the kit.</dd><dt>images/</dt><dd>contains all the images for LESS version of the kit.</dd><dt>images/icons/</dt><dd>contains all the icons for LESS version of the kit.</dd><dt>images/temp/</dt><dd>contains all the temporary images for LESS version of the kit.</dd><dt>js/</dt><dd>contains all the JS files for LESS version of the kit.</dd><dt>less/</dt><dd>contains all the stylesheets for LESS version of the kit.</dd></dl><p><em>Note:</em> The folders <code>funky-tunes-css</code> and <code>funky-tunes-less</code> is fully independent from each other, including all the images and JS files. You can use the version you prefer without pulling images or JS files from the other version of the kit.</p></div></div><!--/ What's included --><!-- Browser support --><div class="section-demo"><h2 id="browser">Browser support</h2><div class="description"><p>Since Funky Tunes UI Kit is built on  Bootstrap 3  framework, it supports the same  browsers  as Bootstrap.</p></div></div><!--/ Browser support --><!-- Getting Started --><div class="section-demo"><h2 id="getting-started">Getting Started</h2><div class="description"><p>To start working with Funky Tunes UI Kit you can use a basic <code>template.html</code>, or take the completely functional pages included in this package. Since it is built on Bootstrap, you can also use it on your project with Bootstrap 3.<br />We provide you both CSS and LESS standalone versions which are completely identical in design and functions.</p><p><em>CSS Version:</em> You can use CSS version by dropping contents of <code>funky-tunes-css</code> folder to your project folder and including <code>style.css</code> file in your HTML page: <code>&lt;link href="style.css" media="screen" rel="stylesheet"></code></p><p><em>LESS Version:</em> You can find it in <code>funky-tunes-less</code> folder. Use LESS if you want to modify Funky Tunes UI Kit. We built it Bootstrap way so you won't find big difference. Use <code>less/variables.less</code> to modify different styles, use <code>style.less</code> to remove needless components.</p><p>If you want to start from scratch, the best way is to use <a href="#template">our template</a> where all startup files are already included and ready to be used. You can find <code>template.html</code> file both for CSS and LESS version in their respective folders.</p></div></div><!-- Getting Started --><!-- Basic Template --><div class="section-demo"><h2 id="template">Basic Template</h2><div class="description"><p>You can use a basic <a href="../funky-tunes-css/template.html" target="_blank">HTML template</a> to write your code, or take completely functional pages included in this package. Basic template as well as completely functional pages are available both for CSS and LESS versions of the Funky Tunes UI Kit.</p></div><div class="example"><div class="example-code"><pre class="prettyprint">
&lt;!doctype html>
&lt;!--[if lt IE 8 ]>&lt;html lang="en" class="ie7"> &lt;![endif]-->
&lt;!--[if IE 8 ]>&lt;html lang="en" class="ie8"> &lt;![endif]-->
&lt;!--[if IE 9 ]>&lt;html lang="en" class="ie9"> &lt;![endif]-->
&lt;!--[if (gt IE 9)|!(IE)]>&lt;!-->&lt;html lang="en"> &lt;!--&lt;![endif]-->&lt;head>&lt;meta charset="utf-8">&lt;meta name="author" content="">&lt;meta name="keywords" content="">&lt;meta name="viewport" content="width=device-width, initial-scale=1">&lt;title>Funky Tunes | Template&lt;/title>&lt;!-- main JS libs  -->&lt;script src="js/libs/jquery-1.11.0.min.js">&lt;/script>&lt;script src="js/libs/jquery-ui.min.js">&lt;/script>&lt;script src="js/libs/bootstrap.min.js">&lt;/script>&lt;!-- Style CSS -->&lt;link href="css/bootstrap.css" media="screen" rel="stylesheet">&lt;link href="style.css" media="screen" rel="stylesheet">&lt;!-- General Scripts -->&lt;script src="js/general.js">&lt;/script>&lt;!--[if lt IE 9]>&lt;script src="js/libs/html5shiv.js">&lt;/script>&lt;script src="js/libs/respond.min.js">&lt;/script>&lt;![endif]-->&lt;/head>&lt;body>&lt;div class="body-wrap">&lt;!-- container-->&lt;div class="container">Start Your Work Here&lt;/div>&lt;!--/ container-->&lt;/div>&lt;/body>
&lt;/html></pre></div></div></div><!-- Basic Template --><!-- Typography --><div class="section-demo"><h2 id="typography">Typography</h2><div class="description"><p>Funky Tunes UI Kit uses free  Open Sans ,  Allerta  and  Montserrat  webfonts available at the  Google Fonts . The global default font-size is 14px, this is applied to the <code>&lt;body></code>. In addition, all <code>&lt;p></code> (paragraphs) receive a line height of 24px and bottom margin of 25px.<br />Also, all headings, <code>&lt;h1></code> through <code>&lt;h6></code> are available.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color"><h1>Example (h1)</h1><h2>Example (h2)</h2><h3>Example (h3)</h3><h4>Example (h4)</h4><h5>Example (h5)</h5><h6>Example (h6)</h6><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor.</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus.</p></div><div class="example-code"><pre class="prettyprint">
&lt;h1>Example (h1)&lt;/h1>
&lt;h2>Example (h2)&lt;/h2>
&lt;h3>Example (h3)&lt;/h3>
&lt;h4>Example (h4)&lt;/h4>
&lt;h5>Example (h5)&lt;/h5>
&lt;h6>Example (h6)&lt;/h6>
&lt;p>Lorem ipsum dolor sit amet.&lt;/p>
&lt;p>Lorem ipsum dolor sit amet.&lt;/p></pre></div></div></div><!--/ Typography --><!-- Buttons --><div class="section-demo"><h2 id="buttons">Buttons</h2><!--/ Simple Buttons --><div class="description"><h3 id="buttons-simple">Simple Buttons</h3><p>Use any of the available button classes to quickly create a simple button.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color example-buttons"><a href="#" class="btn"><span>Default</span></a><a href="#" class="btn btn-green"><span>Green</span></a><a href="#" class="btn btn-red"><span>Red</span></a><a href="#" class="btn btn-caps"><span>All Capitals</span></a></div><div class="example-code"><pre class="prettyprint">
&lt;a href="#" class="btn">&lt;span>Default&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-white">&lt;span>White&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-gray">&lt;span>Gray&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-round">&lt;span>Rounded&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-caps">&lt;span>All Capitals&lt;/span>&lt;/a></pre></div></div><!--/ Simple Buttons --><!--/ Transparent Buttons --><div class="description"><h3 id="buttons-transparent">Transparent Buttons</h3><p></p><h4>Example</h4></div><div class="example"><div class="example-item example-buttons"><a href="#" class="btn btn-left btn-transparent"><span>Prev</span></a><a href="#" class="btn btn-transparent"><span>Download all files</span></a><a href="#" class="btn btn-right btn-transparent"><span>Next</span></a></div><div class="example-code"><pre class="prettyprint">
&lt;a href="#" class="btn btn-left btn-transparent">&lt;span>Prev&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-transparent">&lt;span>Download all files&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-right btn-transparent">&lt;span>Next&lt;/span>&lt;/a></pre></div></div><!--/ Transparent Buttons --><!-- Button Sizes --><div class="description"><h3 id="buttons-sized">Buttons with Different Sizes</h3><p>Two button sizes available.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color example-buttons"><a href="#" class="btn"><span>Default Button</span></a><a href="#" class="btn btn-large"><span>Large Button</span></a></div><div class="example-code"><pre class="prettyprint">
&lt;a href="#" class="btn">&lt;span>Default Button&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-large">&lt;span>Large Button&lt;/span>&lt;/a></pre></div></div><!--/ Button Sizes --><!--/ Shaped Buttons --><div class="description"><h3 id="buttons-shaped">Shaped Buttons</h3><p>Buttons with left and right pointers.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color example-buttons"><a href="#" class="btn btn-left"><span>Prev</span></a><a href="#" class="btn"><span>Download all files</span></a><a href="#" class="btn btn-right"><span>Next</span></a><br /><a href="#" class="btn btn-left btn-red"><span>Prev</span></a><a href="#" class="btn btn-red"><span>Download all files</span></a><a href="#" class="btn btn-right btn-red"><span>Next</span></a><br /><a href="#" class="btn btn-left btn-green"><span>Prev</span></a><a href="#" class="btn btn-green"><span>Download all files</span></a><a href="#" class="btn btn-right btn-green"><span>Next</span></a></div><div class="example-code"><pre class="prettyprint">
&lt;a href="#" class="btn btn-left">&lt;span>Prev&lt;/span>&lt;/a>
&lt;a href="#" class="btn">&lt;span>Download all files&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-right">&lt;span>Next&lt;/span>&lt;/a>&lt;a href="#" class="btn btn-left btn-red">&lt;span>Prev&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-red">&lt;span>Download all files&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-right btn-red">&lt;span>Next&lt;/span>&lt;/a>&lt;a href="#" class="btn btn-left btn-green">&lt;span>Prev&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-green">&lt;span>Download all files&lt;/span>&lt;/a>
&lt;a href="#" class="btn btn-right btn-green">&lt;span>Next&lt;/span>&lt;/a></pre></div></div><!--/ Shaped Buttons --><!--/ Buttons with Icons --><div class="description"><h3 id="buttons-icons">Buttons with Icons</h3><p></p><h4>Example</h4></div><div class="example"><div class="example-item alt-color example-buttons"><a href="#" class="btn btn-red"><span><i class="glyphicon glyphicon-shopping-cart"></i>Buy Now!</span></a><a href="#" class="btn btn-green"><span><i class="glyphicon glyphicon-download-alt"></i>Download</span></a></div><div class="example-code"><pre class="prettyprint">
&lt;a href="#" class="btn btn-red">&lt;span>&lt;i class="glyphicon glyphicon-shopping-cart">&lt;/i>Buy Now!&lt;/span>
&lt;/a>&lt;a href="#" class="btn btn-green">&lt;span>&lt;i class="glyphicon glyphicon-download-alt">&lt;/i>Download&lt;/span>
&lt;/a></pre></div></div><!--/ Buttons with Icons --><!-- Buttoned Input --><div class="description"><h3 id="buttons-input">Buttoned Input</h3><p>Wrap <code>input type="submit"</code> into <code>span</code> and use available button classes to create a styled Input.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color example-buttons"><span class="btn"><input type="submit" value="Send Message" /></span></div><div class="example-code"><pre class="prettyprint">
&lt;span class="btn">&lt;input type="submit" value="Send Message" />&lt;/span></pre></div></div><!--/ Buttoned Input --></div><!--/ Buttons --><!-- Rating Stars --><div class="section-demo"><h2 id="rating-stars">Rating Stars</h2><div class="description"><p>Use rating stars for voting.</p><h4>Example</h4></div><div class="example"><div class="example-item alt-color"><!-- Rating Stars --><div class="rating clearfix margin-bottom-20"><span class="star voted" rel="1"></span><span class="star voted" rel="2"></span><span class="star voted" rel="3"></span><span class="star voted" rel="4"></span><span class="star" rel="5"></span></div><!--/ Rating Stars --><br /><!-- Rating Stars --><div class="rating rating-large clearfix"><span class="star voted" rel="1"></span><span class="star voted" rel="2"></span><span class="star voted" rel="3"></span><span class="star" rel="4"></span><span class="star" rel="5"></span></div><!--/ Rating Stars --></div><div class="example-code"><pre class="prettyprint">
&lt;div class="rating clearfix">&lt;span class="star voted" rel="1">&lt;/span>&lt;span class="star voted" rel="2">&lt;/span>&lt;span class="star voted" rel="3">&lt;/span>&lt;span class="star voted" rel="4">&lt;/span>&lt;span class="star" rel="5">&lt;/span>
&lt;/div>&lt;div class="rating rating-large clearfix">&lt;span class="star voted" rel="1">&lt;/span>&lt;span class="star voted" rel="2">&lt;/span>&lt;span class="star voted" rel="3">&lt;/span>&lt;span class="star" rel="4">&lt;/span>&lt;span class="star" rel="5">&lt;/span>
&lt;/div></pre></div></div></div><!--/ Rating Stars --><!-- Scroll Bars --><div class="section-demo"><h2 id="scroll-bars">Scroll Bars</h2><div class="description"><p>Create a styled Scroll Bar for your site.</p><div class="callout"><h5>Element specific usage</h5><p>Styled Scroll Bar require next files to be included into <code>&lt;head></code> section of the page:</p><pre class="prettyprint">
&lt;script src="js/jquery.mousewheel.js">&lt;/script>
&lt;script src="js/jquery.jscrollpane.min.js">&lt;/script></pre></div><h4>Example</h4></div><div class="example"><div class="example-item example-scrollbars"><div class="scrollbars clearfix"><!-- ScrollBars --><div class="scrollbar"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div><div class="scrollbar style2"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p></div><!--/ ScrollBars --></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="scrollbar">...Content...
&lt;/div>&lt;div class="scrollbar style2">...Content...
&lt;/div></pre><div class="fire-js">Enable Scroll Bars via JS:</div><pre class="prettyprint">
&lt;script>jQuery(function() {jQuery('.scrollbar').jScrollPane({autoReinitialise: true,verticalGutter: 0});});
&lt;/script></pre></div></div></div><!--/ Scroll Bars --><!-- Navigation --><div class="section-demo"><h2 id="navigation">Navigation</h2><div class="description"><p>Website menu with dropdown submenu.</p><h4>Example</h4></div><div class="example"><div class="example-item"><!-- Website Menu --><ul class="menu boxed clearfix bg-image-home"><li><a href="#"><i class="menu-icon menu-icon-1"></i>Home</a></li><li><a href="#"><i class="menu-icon menu-icon-2"></i>Online Radio</a><ul><li><a href="#">Katy Perry</a></li><li><a href="#">Miley Cyrus</a></li><li><a href="#">Selena Gomez</a></li></ul></li><li><a href="#"><i class="menu-icon menu-icon-3"></i>Top 25</a><ul><li><a href="#">Miley Cyrus</a></li><li><a href="#">Katy Perry</a></li><li><a href="#">Lene Marlin</a></li></ul></li><li><a href="#"><i class="menu-icon menu-icon-4"></i>TV show</a><ul><li><a href="#">Katy Perry</a><ul><li><a href="#">Album 1</a></li><li><a href="#">Album 2</a></li><li><a href="#">Album 3</a></li></ul></li><li><a href="#">Miley Cyrus</a><ul><li><a href="#">Album 1</a></li><li><a href="#">Album 2</a></li><li><a href="#">Album 3</a></li></ul></li><li><a href="#">Selena Gomez</a><ul><li><a href="#">Album 1</a></li><li><a href="#">Album 2</a></li><li><a href="#">Album 3</a></li></ul></li></ul></li><li><a href="#"><i class="menu-icon menu-icon-5"></i>News</a></li><li><a href="#"><i class="menu-icon menu-icon-8"></i>Contact Us</a></li></ul><!--/ Website Menu --></div><div class="example-code"><pre class="prettyprint">
&lt;ul class="menu boxed clearfix bg-image-home">&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-1">&lt;/i>Home&lt;/a>&lt;/li>&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-2">&lt;/i>Online Radio&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Katy Perry&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Miley Cyrus&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Selena Gomez&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-3">&lt;/i>Top 25&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Miley Cyrus&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Katy Perry&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Lene Marlin&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-4">&lt;/i>TV show&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Katy Perry&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Album 1&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 2&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 3&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;li>&lt;a href="#">Miley Cyrus&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Album 1&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 2&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 3&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;li>&lt;a href="#">Selena Gomez&lt;/a>&lt;ul>&lt;li>&lt;a href="#">Album 1&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 2&lt;/a>&lt;/li>&lt;li>&lt;a href="#">Album 3&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-5">&lt;/i>News&lt;/a>&lt;/li>&lt;li>&lt;a href="#">&lt;i class="menu-icon menu-icon-8">&lt;/i>Contact Us&lt;/a>&lt;/li>
&lt;/ul></pre></div></div></div><!--/ Navigation --><!-- Tabs --><div class="section-demo"><h2 id="tabs">Tabs</h2><div class="description"><p>Add quick, dynamic tab functionality to transition through panes of local content.</p><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-8 col-md-offset-2"><!-- Widget Profile --><div class="tabs-framed tabs-framed-right boxed widget-container widget-profile"><ul class="tabs clearfix"><li><a href="#profile1" data-toggle="tab"><i class="icon-tab-4"></i>Photos</a></li><li class="active"><a href="#profile2" data-toggle="tab"><i class="icon-tab-5"></i>Profile</a></li><li><a href="#profile3" data-toggle="tab"><i class="icon-tab-6"></i>Music</a></li><li><a href="#profile4" data-toggle="tab"><i class="icon-tab-7"></i>Comments</a></li></ul><div class="tab-content"><div class="tab-pane fade" id="profile1"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-1.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Miley Cyrus</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade in active" id="profile2"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-2.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Anna Maria Jopek</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade" id="profile3"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-3.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Katy Perry</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade" id="profile4"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-4.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Madonna</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div></div></div><!--/ Widget Profile --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="tabs-framed tabs-framed-right boxed">&lt;ul class="tabs clearfix">&lt;li>&lt;a href="#profile1" data-toggle="tab">&lt;i class="icon-tab-4">&lt;/i>Photos&lt;/a>&lt;/li>&lt;li class="active">&lt;a href="#profile2" data-toggle="tab">&lt;i class="icon-tab-5">&lt;/i>Profile&lt;/a>&lt;/li>&lt;li>&lt;a href="#profile3" data-toggle="tab">&lt;i class="icon-tab-6">&lt;/i>Music&lt;/a>&lt;/li>&lt;/ul>&lt;div class="tab-content">&lt;div class="tab-pane fade" id="profile1">...Content...&lt;/div>&lt;div class="tab-pane fade in active" id="profile2">...Content...&lt;/div>&lt;div class="tab-pane fade" id="profile3">...Content...&lt;/div>&lt;/div>
&lt;/div></pre></div></div></div><!--/ Tabs --><!-- Post Tabs --><div class="section-demo"><h2 id="post-tabs">Tabbed Post Items</h2><div class="description"><p></p><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-12"><!-- Post Tabs --><div class="post-tabs clearfix"><div class="post-tabs-bookmarks"><ul class="scrollbar style2"><li class="active">Lil Wayne</li><li>Bruno mars</li><li>Niki Minaj</li><li>Selena Gomez</li><li>Tim McGraw</li><li>Deep Purple</li><li>Katy Perry</li><li>Miley Cyrus</li><li>Christina</li></ul></div><div class="post-tabs-content boxed"><!-- post item --><div class="post-item style6 clearfix bg-image-arrow active"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-11.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-11.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Lil Wayne</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-12.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-12.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Bruno mars</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-13.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-13.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Niki Minaj</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-14.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-14.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Selena Gomez</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-13.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-13.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Tim McGraw</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-11.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-11.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Deep Purple</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-13.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-13.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Katy Perry</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-14.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-14.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Miley Cyrus</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --><!-- post item --><div class="post-item style6 clearfix bg-image-arrow"><div class="post-image"><a href="../funky-tunes-css/images/temp/post-img-11.jpg" data-rel="prettyPhoto" title="Music"><img src="../funky-tunes-css/images/temp/post-img-11.jpg" alt="" /></a></div><div class="post-content"><h2 class="post-title"><a href="#">Christina</a></h2><h6 class="post-subtitle">ARTISTs OF THE WEEK</h6><div class="post-desc"><p>Praesent magna nunc, tincidunt pretium consequat dapibus, mollis nec odio. Nunc feugiat molestie orci.</p></div><ul class="post-links-alt"><li class="post-more"><a href="#">Read more<i class="icon-small-next"></i></a></li><li class="post-refresh"><a href="#"><i class="icon-small-refresh"></i></a></li><li class="post-like"><a href="#" title="128 Likes"><i class="icon-small-like"></i></a></li><li class="post-comments"><a href="#" title="96 Comments"><i class="icon-small-comment"></i></a></li></ul></div></div><!--/ post item --></div></div><!--/ Post Tabs --></div></div></div><div class="example-code"><pre class="prettyprint"></pre></div></div></div><!--/ Post Tabs --><!-- Pricing List --><div class="section-demo"><h2 id="pricing">Pricing</h2><!-- Pricing List Style 3 --><div class="description"><p>Use pricing items to announce prices for your services.</p><h3 id="pricing3">Pricing Items style 3</h3><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-4 col-md-offset-4"><!-- Price List --><div class="price-list style3"><div class="price-item boxed"><div class="price-content bg-image-note4"><h3 class="price-title">Full acc</h3><h6 class="price-subtitle">For music lovers</h6><ul><li>50 000 songs</li><li>All profiles</li><li>Exclusive</li><li>Hot news</li></ul></div><div class="price"><strong><sub>$</sub>9</strong><span>per month</span></div><a href="#" class="btn btn-full btn-large"><span><i class="glyphicon glyphicon-shopping-cart"></i>Buy!</span></a></div></div><!--/ Price List --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="price-list style3">&lt;div class="price-item boxed">&lt;div class="price-content bg-image-note4">&lt;h3 class="price-title">Full acc&lt;/h3>&lt;h6 class="price-subtitle">For music lovers&lt;/h6>&lt;ul>&lt;li>50 000 songs&lt;/li>&lt;li>All profiles&lt;/li>&lt;li>Exclusive stories&lt;/li>&lt;li>Hot news&lt;/li>&lt;/ul>&lt;/div>&lt;div class="price">&lt;strong>&lt;sub>$&lt;/sub>9&lt;/strong>&lt;span>per month&lt;/span>&lt;/div>&lt;a href="#" class="btn btn-full btn-large">&lt;span>&lt;i class="glyphicon glyphicon-shopping-cart">&lt;/i>Buy!&lt;/span>&lt;/a>&lt;/div>
&lt;/div></pre></div></div><!-- Pricing List Style 3 --></div><!--/ Pricing List --><!-- Content Box --><div class="section-demo"><h2 id="content-box">Content Box</h2><div class="description"><p>Use titled box to display different content.</p><h4>Example</h4></div><div class="example"><div class="example-item content-box-demo"><div class="row"><div class="col-sm-6 col-md-offset-3"><!-- widget --><div class="widget-container boxed"><h3 class="widget-title">Title</h3><h6 class="widget-subtitle">SubTitle</h6></div><!-- /widget --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="widget-container boxed">&lt;div class="inner">&lt;h3 class="widget-title">Widget Title&lt;/h3>&lt;!-- place your content here -->&lt;/div>
&lt;/div></pre></div></div></div><!--/ Content Box --><!-- Video Player --><div class="section-demo"><h2 id="video-player">Video Player</h2><div class="description"><p>Use Video.js player to play video content.</p><div class="callout"><h5>Element specific usage</h5><p>Video Player require next files to be included into <code>&lt;head></code> section of the page:</p><pre class="prettyprint">
&lt;link href="css/video-js.css" rel="stylesheet">
&lt;script src="js/video.js">&lt;/script></pre></div><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-12 col-md-10 col-md-offset-1"><!-- Video Player --><div class="widget-container widget-video boxed"><video id="video1" controls preload="auto" poster="../funky-tunes-css/images/temp/vjs-poster-4.jpg" class="video-js vjs-styled-skin"><source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4"><source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm"></video><script>videojs("video1", {"height": "auto","width": "auto"}).ready(function() {var myPlayer = this; // Store the video objectvar aspectRatio = 342 / 536; // Make up an aspect ratiofunction resizeVideoJS() {// Get the parent element's actual widthvar width = document.getElementById(myPlayer.id()).parentElement.offsetWidth;// Set width to fill parent element, Set heightmyPlayer.width(width).height(width * aspectRatio);}resizeVideoJS(); // Initialize the functionwindow.addEventListener("resize", resizeVideoJS, false); // Call the function on resize});</script></div><!--/ Video Player --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="widget-container widget-video boxed">&lt;video id="video1" controls preload="auto" poster="images/temp/vjs-poster-4.jpg" class="video-js vjs-styled-skin">&lt;source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">&lt;source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">&lt;/video>
&lt;/div></pre><div class="fire-js">Enable Video Player via JS:</div><pre class="prettyprint">
&lt;script>videojs("video1", {"height": "auto","width": "auto"}).ready(function() {var myPlayer = this; // Store the video objectvar aspectRatio = 342 / 536; // Make up an aspect ratiofunction resizeVideoJS() {// Get the parent element's actual widthvar width = document.getElementById(myPlayer.id()).parentElement.offsetWidth;// Set width to fill parent element, Set heightmyPlayer.width(width).height(width * aspectRatio);}resizeVideoJS(); // Initialize the functionwindow.addEventListener("resize", resizeVideoJS, false); // Call the function on resize});
&lt;/script></pre></div></div></div><!--/ Video Player --><!-- Audio Player --><div class="section-demo"><h2 id="audio-player">Audio Players</h2><!-- Circle Audio Player --><div class="description"><h3 id="audio-player-circle">Circle Audio Player</h3><div class="callout"><h5>Element specific usage</h5><p>Circle Audio Player require next files to be included into <code>&lt;head></code> section of the page:</p><pre class="prettyprint">
&lt;link href="css/jplayer.css" rel="stylesheet">
&lt;script src="js/jplayer/jquery.jplayer.min.js">&lt;/script>
&lt;script src="js/jplayer/jquery.transform2d.js">&lt;/script>
&lt;script src="js/jplayer/jquery.grab.js">&lt;/script>
&lt;script src="js/jplayer/mod.csstransforms.min.js">&lt;/script>
&lt;script src="js/jplayer/circle.player.js">&lt;/script></pre></div><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-6 col-sm-offset-3"><!-- Circle Player --><div id="jquery_jplayer_1" class="jp-jplayer"></div><div id="cp_container_1" class="cp-container clearfix"><div class="cp-wrap"><div class="cp-progress-holder"><div class="cp-progress-1"></div><div class="cp-progress-2"></div></div><div class="cp-circle-control"></div><ul class="cp-controls"><li><a class="cp-play" tabindex="1">play</a></li><li><a class="cp-pause" style="display:none;" tabindex="1">pause</a></li></ul><div class="jp-current-time"></div></div><div class="jp-controls jp-buttons"><div class="song-title"><div class="item-song">Picasso Baby</div><div class="item-artist">jay-z</div></div><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div></div><div class="jp-no-solution"><span>Update Required</span><a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a></div></div><script>//<![CDATA[$(document).ready(function(){new CirclePlayer("#jquery_jplayer_1",{mp3:"http://www.jplayer.org/audio/mp3/Miaow-07-Bubble.mp3",oga:"http://www.jplayer.org/audio/ogg/Miaow-07-Bubble.ogg"},{cssSelectorAncestor: "#cp_container_1",swfPath: "js/jplayer",supplied: "oga, mp3",wmode: "window",smoothPlayBar: false,keyEnabled: false,preload: "auto"});});//]]></script><!--/ Circle Player --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div id="jquery_jplayer_1" class="jp-jplayer">&lt;/div>
&lt;div id="cp_container_1" class="cp-container clearfix">&lt;div class="cp-wrap">&lt;div class="cp-progress-holder">&lt;div class="cp-progress-1">&lt;/div>&lt;div class="cp-progress-2">&lt;/div>&lt;/div>&lt;div class="cp-circle-control">&lt;/div>&lt;ul class="cp-controls">&lt;li>&lt;a class="cp-play" tabindex="1">play&lt;/a>&lt;/li>&lt;li>&lt;a class="cp-pause" style="display:none;" tabindex="1">pause&lt;/a>&lt;/li>&lt;/ul>&lt;div class="jp-current-time">&lt;/div>&lt;/div>&lt;div class="jp-controls jp-buttons">&lt;div class="song-title">&lt;div class="item-song">Picasso Baby&lt;/div>&lt;div class="item-artist">jay-z&lt;/div>&lt;/div>&lt;a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute&lt;/a>&lt;a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute&lt;/a>&lt;div class="jp-volume-bar">&lt;div class="jp-volume-bar-value">&lt;/div>&lt;/div>&lt;/div>&lt;div class="jp-no-solution">&lt;span>Update Required&lt;/span>&lt;a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin&lt;/a>&lt;/div>
&lt;/div></pre><div class="fire-js">Enable Circle Audio Player via JS:</div><pre class="prettyprint">
&lt;script>//&lt;![CDATA[$(document).ready(function(){new CirclePlayer("#jquery_jplayer_1",{mp3:"http://www.jplayer.org/audio/mp3/Miaow-07-Bubble.mp3",oga:"http://www.jplayer.org/audio/ogg/Miaow-07-Bubble.ogg"},{cssSelectorAncestor: "#cp_container_1",swfPath: "js/jplayer",supplied: "oga, mp3",wmode: "window",smoothPlayBar: false,keyEnabled: false,preload: "auto"});});//]]>
&lt;/script></pre></div></div><!-- Circle Audio Player --></div><!--/ Audio Player --><!-- User Profile --><div class="section-demo"><div class="description"><h2 id="user-profile">User Profile</h2><p>Display information about user in a styled box.</p><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-8 col-md-offset-2"><!-- Widget Profile --><div class="tabs-framed tabs-framed-right boxed widget-container widget-profile"><ul class="tabs clearfix"><li><a href="#profile5" data-toggle="tab"><i class="icon-tab-4"></i>Photos</a></li><li class="active"><a href="#profile6" data-toggle="tab"><i class="icon-tab-5"></i>Profile</a></li><li><a href="#profile7" data-toggle="tab"><i class="icon-tab-6"></i>Music</a></li><li><a href="#profile8" data-toggle="tab"><i class="icon-tab-7"></i>Comments</a></li></ul><div class="tab-content"><div class="tab-pane fade" id="profile5"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-1.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Miley Cyrus</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade in active" id="profile6"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-2.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Anna Maria Jopek</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade" id="profile7"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-3.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Katy Perry</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div><div class="tab-pane fade" id="profile8"><div class="profile-social"><a href="#"><span class="icon-small-pinterest"></span></a><a href="#"><span class="icon-small-twitter"></span></a><a href="#"><span class="icon-small-facebook"></span></a></div><div class="profile-image"><img src="../funky-tunes-css/images/temp/profile-4.jpg" alt="" /></div><div class="bottom"><div class="profile-desc"><a href="#" class="profile-title">Madonna</a><span class="profile-subtitle">ARTIST PROFILE</span></div><ul class="profile-links clearfix"><li class="profile-views"><a href="#"><i class="icon-small-author"></i>7 034</a></li><li class="profile-likes"><a href="#"><i class="icon-small-like"></i>12 980</a></li><li class="profile-comments"><a href="#"><i class="icon-small-comment"></i>9 156</a></li></ul></div></div></div></div><!--/ Widget Profile --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="tabs-framed tabs-framed-right boxed widget-container widget-profile">&lt;ul class="tabs clearfix">&lt;li>&lt;a href="#profile5" data-toggle="tab">&lt;i class="icon-tab-4">&lt;/i>Photos&lt;/a>&lt;/li>&lt;li class="active">&lt;a href="#profile6" data-toggle="tab">&lt;i class="icon-tab-5">&lt;/i>Profile&lt;/a>&lt;/li>&lt;li>&lt;a href="#profile7" data-toggle="tab">&lt;i class="icon-tab-6">&lt;/i>Music&lt;/a>&lt;/li>&lt;li>&lt;a href="#profile8" data-toggle="tab">&lt;i class="icon-tab-7">&lt;/i>Comments&lt;/a>&lt;/li>&lt;/ul>&lt;div class="tab-content">&lt;div class="tab-pane fade" id="profile5">&lt;div class="profile-social">&lt;a href="#">&lt;span class="icon-small-pinterest">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-twitter">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-facebook">&lt;/span>&lt;/a>&lt;/div>&lt;div class="profile-image">&lt;img src="images/temp/profile-1.jpg" alt="" />&lt;/div>&lt;div class="bottom">&lt;div class="profile-desc">&lt;a href="#" class="profile-title">Miley Cyrus&lt;/a>&lt;span class="profile-subtitle">ARTIST PROFILE&lt;/span>&lt;/div>&lt;ul class="profile-links clearfix">&lt;li class="profile-views">&lt;a href="#">&lt;i class="icon-small-author">&lt;/i>7 034&lt;/a>&lt;/li>&lt;li class="profile-likes">&lt;a href="#">&lt;i class="icon-small-like">&lt;/i>12 980&lt;/a>&lt;/li>&lt;li class="profile-comments">&lt;a href="#">&lt;i class="icon-small-comment">&lt;/i>9 156&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>&lt;div class="tab-pane fade in active" id="profile6">&lt;div class="profile-social">&lt;a href="#">&lt;span class="icon-small-pinterest">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-twitter">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-facebook">&lt;/span>&lt;/a>&lt;/div>&lt;div class="profile-image">&lt;img src="images/temp/profile-2.jpg" alt="" />&lt;/div>&lt;div class="bottom">&lt;div class="profile-desc">&lt;a href="#" class="profile-title">Anna Maria Jopek&lt;/a>&lt;span class="profile-subtitle">ARTIST PROFILE&lt;/span>&lt;/div>&lt;ul class="profile-links clearfix">&lt;li class="profile-views">&lt;a href="#">&lt;i class="icon-small-author">&lt;/i>7 034&lt;/a>&lt;/li>&lt;li class="profile-likes">&lt;a href="#">&lt;i class="icon-small-like">&lt;/i>12 980&lt;/a>&lt;/li>&lt;li class="profile-comments">&lt;a href="#">&lt;i class="icon-small-comment">&lt;/i>9 156&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>&lt;div class="tab-pane fade" id="profile7">&lt;div class="profile-social">&lt;a href="#">&lt;span class="icon-small-pinterest">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-twitter">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-facebook">&lt;/span>&lt;/a>&lt;/div>&lt;div class="profile-image">&lt;img src="images/temp/profile-3.jpg" alt="" />&lt;/div>&lt;div class="bottom">&lt;div class="profile-desc">&lt;a href="#" class="profile-title">Katy Perry&lt;/a>&lt;span class="profile-subtitle">ARTIST PROFILE&lt;/span>&lt;/div>&lt;ul class="profile-links clearfix">&lt;li class="profile-views">&lt;a href="#">&lt;i class="icon-small-author">&lt;/i>7 034&lt;/a>&lt;/li>&lt;li class="profile-likes">&lt;a href="#">&lt;i class="icon-small-like">&lt;/i>12 980&lt;/a>&lt;/li>&lt;li class="profile-comments">&lt;a href="#">&lt;i class="icon-small-comment">&lt;/i>9 156&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>&lt;div class="tab-pane fade" id="profile8">&lt;div class="profile-social">&lt;a href="#">&lt;span class="icon-small-pinterest">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-twitter">&lt;/span>&lt;/a>&lt;a href="#">&lt;span class="icon-small-facebook">&lt;/span>&lt;/a>&lt;/div>&lt;div class="profile-image">&lt;img src="images/temp/profile-4.jpg" alt="" />&lt;/div>&lt;div class="bottom">&lt;div class="profile-desc">&lt;a href="#" class="profile-title">Madonna&lt;/a>&lt;span class="profile-subtitle">ARTIST PROFILE&lt;/span>&lt;/div>&lt;ul class="profile-links clearfix">&lt;li class="profile-views">&lt;a href="#">&lt;i class="icon-small-author">&lt;/i>7 034&lt;/a>&lt;/li>&lt;li class="profile-likes">&lt;a href="#">&lt;i class="icon-small-like">&lt;/i>12 980&lt;/a>&lt;/li>&lt;li class="profile-comments">&lt;a href="#">&lt;i class="icon-small-comment">&lt;/i>9 156&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>&lt;/div>
&lt;/div></pre></div></div></div><!--/ User Profile --><!-- Statistics --><div class="section-demo"><h2 id="statistics">Statistical Data</h2><div class="description"><p>Statistics widget is based on <a href="https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart" target="_blank">Google Charts</a>.</p><div class="callout"><h5>Element specific usage</h5><p>Google Charts require next file to be included into <code>&lt;head></code> section of the page:</p><pre class="prettyprint">
&lt;script src="https://www.google.com/jsapi">&lt;/script></pre></div><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-6 col-md-offset-3"><!-- Statistics --><div class="widget-container widget-stats boxed boxed-transparent"><div class="stats-top"><h6 class="widget-title">Chart positions</h6><div class="widget-subtitle">2013</div></div><div class="stats-content fade-effect"><div id="stats" class="carousel slide" data-interval="20000"><!-- Carousel items --><div class="carousel-inner"><div class="active item"><div id="graph-1" class="graph"></div><div class="stats-tab-bottom clearfix"><span class="artist">Passenger</span><span class="position"><strong>1</strong>st<em>top<br>position</em></span></div></div><div class="item"><div id="graph-2" class="graph"></div><div class="stats-tab-bottom clearfix"><span class="artist">Miley Cyrus</span><span class="position"><strong>2</strong>d<em>top<br>position</em></span></div></div><div class="item"><div id="graph-3" class="graph"></div><div class="stats-tab-bottom clearfix"><span class="artist">Katy Perry</span><span class="position"><strong>3</strong>rd<em>top<br>position</em></span></div></div></div><!-- Carousel nav --><a class="carousel-control left" href="#stats" data-slide="prev"></a><a class="carousel-control right" href="#stats" data-slide="next"></a></div></div></div><!--/ Statistics --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="widget-container widget-stats boxed boxed-transparent">&lt;div class="stats-top">&lt;h6 class="widget-title">Chart positions&lt;/h6>&lt;div class="widget-subtitle">2013&lt;/div>&lt;/div>&lt;div class="stats-content fade-effect">&lt;div id="stats" class="carousel slide" data-interval="20000">&lt;!-- Carousel items -->&lt;div class="carousel-inner">&lt;div class="item">&lt;div id="graph-1" class="graph">&lt;/div>&lt;script type="text/javascript">google.load("visualization", "1", {packages:["corechart"]});google.setOnLoadCallback(drawChart);function drawChart() {var data = google.visualization.arrayToDataTable([['Month', 'Place', {type: 'string', role: 'tooltip', p: {html:true}}],['Jan',  3, '&lt;strong>3&lt;/strong>&lt;span>place&lt;/span>'],['Feb',  1, '&lt;strong>1&lt;/strong>&lt;span>place&lt;/span>'],['Mar',  5, '&lt;strong>5&lt;/strong>&lt;span>place&lt;/span>'],['Apr',  8, '&lt;strong>8&lt;/strong>&lt;span>place&lt;/span>'],['May',  9, '&lt;strong>9&lt;/strong>&lt;span>place&lt;/span>'],['Jun',  6, '&lt;strong>6&lt;/strong>&lt;span>place&lt;/span>'],['Jul',  3, '&lt;strong>3&lt;/strong>&lt;span>place&lt;/span>'],['Aug',  8, '&lt;strong>8&lt;/strong>&lt;span>place&lt;/span>'],['Sep',  4, '&lt;strong>4&lt;/strong>&lt;span>place&lt;/span>'],['Oct',  2, '&lt;strong>2&lt;/strong>&lt;span>place&lt;/span>'],['Nov',  6, '&lt;strong>6&lt;/strong>&lt;span>place&lt;/span>'],['Dec',  9, '&lt;strong>9&lt;/strong>&lt;span>place&lt;/span>']]);var options = {curveType: 'function',chartArea:{left:0, top:10, width:"100%"},hAxis: {textStyle: {color: 'transparent', fontSize: 0}},vAxis: {direction: -1, gridlines: {color: 'transparent', count: 0}, baselineColor: 'transparent'},tooltip: {isHtml: true},backgroundColor:{fill: 'transparent'},series: [{color: '#fff',visibleInLegend: false,pointSize: 4,lineWidth: 3,areaOpacity: .1}]};var chart = new google.visualization.LineChart(document.getElementById('graph-1'));chart.draw(data, options);$(window).resize(function() {chart.clearChart();chart.draw(data, options);});$('#stats').on('slid.bs.carousel', function () {chart.clearChart();chart.draw(data, options);})}&lt;/script>&lt;div class="stats-tab-bottom clearfix">&lt;span class="artist">Passenger&lt;/span>&lt;span class="position">&lt;strong>1&lt;/strong>st&lt;em>top&lt;br>position&lt;/em>&lt;/span>&lt;/div>&lt;/div>.........&lt;/div>&lt;!-- Carousel nav -->&lt;a class="carousel-control left" href="#stats" data-slide="prev">&lt;/a>&lt;a class="carousel-control right" href="#stats" data-slide="next">&lt;/a>&lt;/div>&lt;/div>
&lt;/div></pre></div></div></div><!--/ Statistics --><!-- Schedule --><div class="section-demo"><h2 id="widget-schedule">Tour Calendar</h2><div class="description"><p></p><div class="callout"><h5>Element specific usage</h5><p>Widget Schedule require next files to be included into <code>&lt;head></code> section of the page:</p><pre class="prettyprint">
&lt;script src="js/jquery.carouFredSel-6.2.1-packed.js">&lt;/script>
&lt;script src="js/jquery.touchSwipe.min.js">&lt;/script></pre></div><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-12"><!-- Widget Schedule --><div class="widget-container widget-schedule clearfix"><h2 class="widget-title"><i></i>Calendar</h2><div class="carousel"><ul id="schedule"><li class="schedule-item clearfix"><div class="schedule-left"><div class="schedule-name">Kyle<br />Minouge</div><div class="schedule-date">january 25th</div><div class="rating clearfix"><span class="star voted" rel="1"></span><span class="star voted" rel="2"></span><span class="star voted" rel="3"></span><span class="star" rel="4"></span><span class="star" rel="5"></span></div></div><div class="schedule-right"><div class="schedule-avatar"><a href="#"><img src="../funky-tunes-css/images/temp/schedule-avatar-2.jpg" alt="" /></a></div><div class="schedule-links"><a class="schedule-details" href="#"><i class="icon-small-info"></i>Details</a><a class="schedule-add" href="#"><i class="icon-small-star"></i>Add to list</a></div></div></li><li class="schedule-item clearfix"><div class="schedule-left"><div class="schedule-name">Selena<br />Gomez</div><div class="schedule-date">MARCH 18th</div><div class="rating clearfix"><span class="star voted" rel="1"></span><span class="star voted" rel="2"></span><span class="star voted" rel="3"></span><span class="star voted" rel="4"></span><span class="star" rel="5"></span></div></div><div class="schedule-right"><div class="schedule-avatar"><a href="#"><img src="../funky-tunes-css/images/temp/schedule-avatar-3.jpg" alt="" /></a></div><div class="schedule-links"><a class="schedule-details" href="#"><i class="icon-small-info"></i>Details</a><a class="schedule-add" href="#"><i class="icon-small-star"></i>Add to list</a></div></div></li><li class="schedule-item clearfix"><div class="schedule-left"><div class="schedule-name">Maria<br />Jopek</div><div class="schedule-date">MARCH 12th</div><div class="rating clearfix"><span class="star voted" rel="1"></span><span class="star voted" rel="2"></span><span class="star voted" rel="3"></span><span class="star voted" rel="4"></span><span class="star voted" rel="5"></span></div></div><div class="schedule-right"><div class="schedule-avatar"><a href="#"><img src="../funky-tunes-css/images/temp/schedule-avatar-4.jpg" alt="" /></a></div><div class="schedule-links"><a class="schedule-details" href="#"><i class="icon-small-info"></i>Details</a><a class="schedule-add" href="#"><i class="icon-small-star"></i>Add to list</a></div></div></li></ul><a class="prev" id="schedule-prev" href="#">&lsaquo;</a><a class="next" id="schedule-next" href="#">&rsaquo;</a></div></div><script>jQuery(document).ready(function ($) {function scheduleInit() {$('#schedule').carouFredSel({swipe : {onTouch: true},prev: '#schedule-prev',next: "#schedule-next",auto: {play: true,timeoutDuration: 16000},scroll: {pauseOnHover: true,items: 1,duration: 500,easing: 'swing'}});}scheduleInit();$(window).resize(function() {scheduleInit();});});</script><!--/ Widget Schedule --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="widget-container widget-schedule clearfix">&lt;h2 class="widget-title">&lt;i>&lt;/i>Calendar&lt;/h2>&lt;div class="carousel">&lt;ul id="schedule">&lt;li class="schedule-item clearfix">&lt;div class="schedule-left">&lt;div class="schedule-name">Kyle&lt;br />Minouge&lt;/div>&lt;div class="schedule-date">january 25th&lt;/div>&lt;div class="rating clearfix">&lt;span class="star voted" rel="1">&lt;/span>&lt;span class="star voted" rel="2">&lt;/span>&lt;span class="star voted" rel="3">&lt;/span>&lt;span class="star" rel="4">&lt;/span>&lt;span class="star" rel="5">&lt;/span>&lt;/div>&lt;/div>&lt;div class="schedule-right">&lt;div class="schedule-avatar">&lt;a href="#">&lt;img src="images/temp/schedule-avatar-2.jpg" alt="" />&lt;/a>&lt;/div>&lt;div class="schedule-links">&lt;a class="schedule-details" href="#">&lt;i class="icon-small-info">&lt;/i>Details&lt;/a>&lt;a class="schedule-add" href="#">&lt;i class="icon-small-star">&lt;/i>Add to list&lt;/a>&lt;/div>&lt;/div>&lt;/li>.........&lt;/ul>&lt;a class="prev" id="schedule-prev" href="#">&lsaquo;&lt;/a>&lt;a class="next" id="schedule-next" href="#">&rsaquo;&lt;/a>&lt;/div>
&lt;/div></pre><div class="fire-js">Enable Schedule via JS:</div><pre class="prettyprint">
&lt;script>jQuery(document).ready(function ($) {function scheduleInit() {$('#schedule').carouFredSel({swipe : {onTouch: true},prev: '#schedule-prev',next: "#schedule-next",auto: {play: true,timeoutDuration: 16000},scroll: {pauseOnHover: true,items: 1,duration: 500,easing: 'swing'}});}scheduleInit();$(window).resize(function() {scheduleInit();});});
&lt;/script></pre></div></div></div><!--/ Schedule --><!-- Charts --><div class="section-demo"><h2 id="charts">Music Charts</h2><!-- Top 3 Chart --><div class="description"><h3 id="charts-top3">Top 3 Chart</h3><p>Top 3 songs and video clips.</p><h4>Example</h4></div><div class="example"><div class="example-item"><div class="row"><div class="col-sm-8 col-md-offset-2"><!-- Top 3 Chart --><div class="widget-container widget-top3chart boxed"><ul class="chart-tab music"><li class="clearfix"><span class="position">1</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-4.jpg" alt="" /></div><a href="#" class="chart-title"><strong>Wide Awake</strong>Miley Cyrus</a><a href="#" class="chart-like">246<i class="icon-small-like"></i></a></li><li class="clearfix"><span class="position">2</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-6.jpg" alt="" /></div><a href="#" class="chart-title"><strong>Bullet proof</strong>Madonna</a><a href="#" class="chart-like">984<i class="icon-small-like"></i></a></li><li class="clearfix"><span class="position">3</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-8.jpg" alt="" /></div><a href="#" class="chart-title"><strong>She Wolf</strong>Rihanna</a><a href="#" class="chart-like">896<i class="icon-small-like"></i></a></li></ul><ul class="chart-tab video active"><li class="clearfix"><span class="position">1</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-9.jpg" alt="" /></div><a href="#" class="chart-title"><strong>She Wolf</strong>Shakira</a><a href="#" class="chart-like">593<i class="icon-small-like"></i></a></li><li class="clearfix"><span class="position">2</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-10.jpg" alt="" /></div><a href="#" class="chart-title"><strong>Wide Awake</strong>Katy Perry</a><a href="#" class="chart-like">412<i class="icon-small-like"></i></a></li><li class="clearfix"><span class="position">3</span><div class="chart-avatar"><img src="../funky-tunes-css/images/temp/thumb-11.jpg" alt="" /></div><a href="#" class="chart-title"><strong>Bullet proof</strong>Bruno Mars</a><a href="#" class="chart-like">360<i class="icon-small-like"></i></a></li></ul><ul class="chart-links green clearfix"><li class="text">Top3</li><li><a href="javascript:;" class="music"><i class="icon-small-note"></i>Music</a></li><li><a href="javascript:;" class="video active"><i class="icon-small-cam"></i>Videos</a></li></ul></div><!--/ Top 3 Chart --></div></div></div><div class="example-code"><pre class="prettyprint">
&lt;div class="widget-container widget-top3chart boxed">&lt;ul class="chart-tab music">&lt;li class="clearfix">&lt;span class="position">1&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-4.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>Wide Awake&lt;/strong>Miley Cyrus&lt;/a>&lt;a href="#" class="chart-like">246&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;li class="clearfix">&lt;span class="position">2&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-6.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>Bullet proof&lt;/strong>Madonna&lt;/a>&lt;a href="#" class="chart-like">984&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;li class="clearfix">&lt;span class="position">3&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-8.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>She Wolf&lt;/strong>Rihanna&lt;/a>&lt;a href="#" class="chart-like">896&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;/ul>&lt;ul class="chart-tab video active">&lt;li class="clearfix">&lt;span class="position">1&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-9.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>She Wolf&lt;/strong>Shakira&lt;/a>&lt;a href="#" class="chart-like">593&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;li class="clearfix">&lt;span class="position">2&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-10.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>Wide Awake&lt;/strong>Katy Perry&lt;/a>&lt;a href="#" class="chart-like">412&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;li class="clearfix">&lt;span class="position">3&lt;/span>&lt;div class="chart-avatar">&lt;img src="images/temp/thumb-11.jpg" alt="" />&lt;/div>&lt;a href="#" class="chart-title">&lt;strong>Bullet proof&lt;/strong>Bruno Mars&lt;/a>&lt;a href="#" class="chart-like">360&lt;i class="icon-small-like">&lt;/i>&lt;/a>&lt;/li>&lt;/ul>&lt;ul class="chart-links green clearfix">&lt;li class="text">Top3&lt;/li>&lt;li>&lt;a href="javascript:;" class="music">&lt;i class="icon-small-note">&lt;/i>Music&lt;/a>&lt;/li>&lt;li>&lt;a href="javascript:;" class="video active">&lt;i class="icon-small-cam">&lt;/i>Videos&lt;/a>&lt;/li>&lt;/ul>
&lt;/div></pre></div></div><!--/ Top 3 Chart --></div><!--/ Charts --></div><!--/ content --></div></div><!--/ row--></div><!--/ container -->
</div>
</body>
</html>

read包

ReadPackageServlet

package com.demo.read;import com.demo.annotation.PackageServlet;
import com.demo.annotation.TomcatRequestMapping;
import com.demo.util.ClassUtil;
import com.demo.util.ServletUtil;
import com.demo.vo.ServletVo;
import com.demo.vo.TomcatPrintVo;import javax.servlet.Servlet;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;/*** @author tanyongpeng* <p>根据注解路径获取所有servlet 以及对应的模板</p>**/
public final class ReadPackageServlet {public static List<ServletVo> servletList(Class<?> cls) throws Exception {List<ServletVo> ladybugServlets = new ArrayList<>();PackageServlet packageServlet = cls.getAnnotation(PackageServlet.class);if (packageServlet != null){String servletPack = packageServlet.servletPack();String componentsPack = packageServlet.componentsPack();Set<Class<?>> classSet = ClassUtil.getClasses(servletPack);for (Class<?> aClass : classSet) {TomcatRequestMapping servlet = aClass.getAnnotation(TomcatRequestMapping.class);if (servlet != null) {String component = ServletUtil.getComponent(componentsPack, aClass);TomcatPrintVo.getInstance().getServletComponents().put(aClass.getSimpleName(),component);for (String path : servlet.value()) {ladybugServlets.add(new ServletVo(aClass.getSimpleName(), (Servlet) aClass.newInstance(),path));}}}}return ladybugServlets;}}

servlet包

DocServlet

package com.demo.servlet;import com.demo.annotation.TomcatRequestMapping;
import com.demo.util.ServletUtil;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** @author tanyongpeng* 当前servlet必须对应DocServlet.html 必须同名*/
@TomcatRequestMapping("/user/doc")
public class DocServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ServletUtil.setComponent(response,DocServlet.class);}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}}

status包

ReptileStatus

package com.demo.status;/*** @author tanyongpeng* <p>状态值</p>**/
public class ReptileStatus {// 语法标识符号public static final String GRAMMAR_HTML = ".html";public static final String GRAMMAR_LOCALHOST = "localhost";public static final String GRAMMAR_WEBAPPS = "webapps";// 语法分割符splitpublic static final String GRAMMAR_SPLIT_SLASH_DAN = "/";// 语法替换符号public static final String GRAMMAR_REPLACE_POINT = ".";public static final String GRAMMAR_REPLACE_LEFT_SLASH = "\\";// 请求字符编码public static final String CHAR_CONTENT_TYPE = "text/html";public static final String CHAR_ENCODING = "UTF-8";// 路径public static final String CHAR_SYSTEM_PATH = "user.dir";public static final String CHAR_USER_PATH = "\\src\\main\\java\\";}

util包

ClassUtil

package com.demo.util;import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;/*** @author tanyongpeng* <p>class读取类</p>**/
public class ClassUtil {/*** 根据包名获取包下面所有的类名** @param pack* @return* @throws Exception*/public static Set<Class<?>> getClasses(String pack) throws Exception {// 第一个class类的集合Set<Class<?>> classes = new LinkedHashSet<Class<?>>();// 是否循环迭代boolean recursive = true;// 获取包的名字 并进行替换String packageName = pack;String packageDirName = packageName.replace('.', '/');// 定义一个枚举的集合 并进行循环来处理这个目录下的thingsEnumeration<URL> dirs;try {dirs = Thread.currentThread().getContextClassLoader().getResources(packageDirName);// 循环迭代下去while (dirs.hasMoreElements()) {// 获取下一个元素URL url = dirs.nextElement();// 得到协议的名称String protocol = url.getProtocol();// 如果是以文件的形式保存在服务器上if ("file".equals(protocol)) {// 获取包的物理路径String filePath = URLDecoder.decode(url.getFile(), "UTF-8");// 以文件的方式扫描整个包下的文件 并添加到集合中findClassesInPackageByFile(packageName, filePath, recursive, classes);} else if ("jar".equals(protocol)) {// 如果是jar包文件// 定义一个JarFileJarFile jar;try {// 获取jarjar = ((JarURLConnection) url.openConnection()).getJarFile();// 从此jar包 得到一个枚举类Enumeration<JarEntry> entries = jar.entries();findClassesInPackageByJar(packageName, entries, packageDirName, recursive, classes);} catch (IOException e) {// log.error("在扫描用户定义视图时从jar包获取文件出错");e.printStackTrace();}}}} catch (IOException e) {e.printStackTrace();}return classes;}/*** 以文件的形式来获取包下的所有Class** @param packageName* @param packagePath* @param recursive* @param classes*/private static void findClassesInPackageByFile(String packageName, String packagePath, final boolean recursive, Set<Class<?>> classes) {// 获取此包的目录 建立一个FileFile dir = new File(packagePath);// 如果不存在或者 也不是目录就直接返回if (!dir.exists() || !dir.isDirectory()) {// log.warn("用户定义包名 " + packageName + " 下没有任何文件");return;}// 如果存在 就获取包下的所有文件 包括目录File[] dirfiles = dir.listFiles(new FileFilter() {// 自定义过滤规则 如果可以循环(包含子目录) 或则是以.class结尾的文件(编译好的java类文件)@Overridepublic boolean accept(File file) {return (recursive && file.isDirectory()) || (file.getName().endsWith(".class"));}});// 循环所有文件for (File file : dirfiles) {// 如果是目录 则继续扫描if (file.isDirectory()) {findClassesInPackageByFile(packageName + "." + file.getName(), file.getAbsolutePath(), recursive, classes);} else {// 如果是java类文件 去掉后面的.class 只留下类名String className = file.getName().substring(0, file.getName().length() - 6);try {classes.add(Thread.currentThread().getContextClassLoader().loadClass(packageName + '.' + className));} catch (ClassNotFoundException e) {// log.error("添加用户自定义视图类错误 找不到此类的.class文件");e.printStackTrace();}}}}/*** 以jar的形式来获取包下的所有Class** @param packageName* @param entries* @param packageDirName* @param recursive* @param classes*/private static void findClassesInPackageByJar(String packageName, Enumeration<JarEntry> entries, String packageDirName, final boolean recursive, Set<Class<?>> classes) {// 同样的进行循环迭代while (entries.hasMoreElements()) {// 获取jar里的一个实体 可以是目录 和一些jar包里的其他文件 如META-INF等文件JarEntry entry = entries.nextElement();String name = entry.getName();// 如果是以/开头的if (name.charAt(0) == '/') {// 获取后面的字符串name = name.substring(1);}// 如果前半部分和定义的包名相同if (name.startsWith(packageDirName)) {int idx = name.lastIndexOf('/');// 如果以"/"结尾 是一个包if (idx != -1) {packageName = name.substring(0, idx).replace('/', '.');}if ((idx != -1) || recursive) {if (name.endsWith(".class") && !entry.isDirectory()) {String className = name.substring(packageName.length() + 1, name.length() - 6);try {classes.add(Class.forName(packageName + '.' + className));} catch (ClassNotFoundException e) {e.printStackTrace();}}}}}}
}

SelfStartingUtil

package com.demo.util;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;/*** @author tanyongpeng* <p>浏览器启动类</p>**/
public class SelfStartingUtil {public static void run(int port){if (!"Linux".equals(System.getProperty("os.name"))){try {String address = "http://localhost:"+port+"/user/doc";String run = "cmd /c start "+address;Runtime.getRuntime().exec(run);} catch (IOException e) {e.printStackTrace();}}}
}

ServletUtil

package com.demo.util;import cn.hutool.core.io.FileUtil;
import com.demo.status.ReptileStatus;
import com.demo.vo.TomcatPrintVo;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;/*** @author tanyongpeng* <p>des</p>**/
public class ServletUtil {public static PrintWriter out(HttpServletResponse response){response.setContentType(ReptileStatus.CHAR_CONTENT_TYPE);response.setCharacterEncoding(ReptileStatus.CHAR_ENCODING);PrintWriter out = null;try {out = response.getWriter();} catch (IOException e) {e.printStackTrace();}return out;}public static String getComponent(String path,Class<?> cls){return FileUtil.readUtf8String(getPath(path,cls));}public static String getPath(String path,Class<?> cls){String property = System.getProperty(ReptileStatus.CHAR_SYSTEM_PATH)+ReptileStatus.CHAR_USER_PATH;path = path.replace(ReptileStatus.GRAMMAR_REPLACE_POINT,ReptileStatus.GRAMMAR_REPLACE_LEFT_SLASH);return property + path + ReptileStatus.GRAMMAR_REPLACE_LEFT_SLASH + cls.getSimpleName() + ReptileStatus.GRAMMAR_HTML;}public static void setComponent(HttpServletResponse response,Class<?> cls){// 根据servlet名称获取对应的模板,并写出PrintWriter printWriter = out(response);printWriter.println(TomcatPrintVo.getInstance().getServletComponents().get(cls.getSimpleName()));}}

vo包

ServletVo

package com.demo.vo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import javax.servlet.Servlet;/*** @author tanyongpeng* <p>des</p>**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ServletVo {/*** 名称*/private String servletName;/*** 当前对象*/private Servlet servlet;/*** 当前访问路径*/private String path;}

TomcatPrintVo

package com.demo.vo;import lombok.Data;import java.util.HashMap;
import java.util.Map;/*** @author tanyongpeng* <p>des</p>**/
@Data
public class TomcatPrintVo {protected static volatile TomcatPrintVo printVo;private Map<String,String> servletComponents = new HashMap<>();public static TomcatPrintVo getInstance(){if (printVo == null){synchronized (TomcatPrintVo.class){if (printVo == null){printVo = new TomcatPrintVo();}}}return printVo;}}

主启动类

MyTomcat

package com.demo;import com.demo.read.ReadPackageServlet;
import com.demo.status.ReptileStatus;
import com.demo.util.SelfStartingUtil;
import com.demo.vo.ServletVo;
import org.apache.catalina.Context;
import org.apache.catalina.Host;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;import java.util.List;
import java.util.UUID;/*** @author tanyongpeng* <p>des</p>**/
public class MyTomcat {public static void runTomcat(int port,Class<?> cls) throws Exception {//1.把目录的绝对路径获取到String classPath = System.getProperty(ReptileStatus.CHAR_SYSTEM_PATH);//2.新建一个Tomcat对象Tomcat tomcat = new Tomcat();//3.创建一个连接器Connector connector = tomcat.getConnector();//4.连接器有一个端口属性connector.setPort(port);//5.设置HostHost host = tomcat.getHost();//6.设置Host的属性,可以参照Server.xml来进行理解host.setName(ReptileStatus.GRAMMAR_LOCALHOST);host.setAppBase(ReptileStatus.GRAMMAR_WEBAPPS);//7.把class加载进来,把启动的工程加入进来了Context context = tomcat.addContext(host,ReptileStatus.GRAMMAR_SPLIT_SLASH_DAN,classPath);if(context instanceof StandardContext) {List<ServletVo> servletVos = ReadPackageServlet.servletList(cls);for (ServletVo servletVo : servletVos) {tomcat.addServlet(ReptileStatus.GRAMMAR_SPLIT_SLASH_DAN,servletVo.getServletName() + UUID.randomUUID().toString(),servletVo.getServlet()).addMapping(servletVo.getPath());}}try {tomcat.start();} catch (LifecycleException e) {e.printStackTrace();}// 启动至浏览器SelfStartingUtil.run(port);//强制Tomcat Server等待,避免main线程执行结束后关闭tomcat.getServer().await();}}

最后开始测试

test包

MyTest

package com.demo.test;import com.demo.MyTomcat;
import com.demo.annotation.PackageServlet;/*** @author tanyongpeng* <p>*     测试类*     servletPack 对应servlet的路径*     componentsPack 对应html模板的路径* </p>**/
@PackageServlet(servletPack = "com.demo.servlet",componentsPack = "com.demo.components")
public class MyTest {public static void main(String[] args) throws Exception {// 启动  port 设置端口号 // 如果当前类PackageServlet这个注解 需要把当前类class加载减去MyTomcat.runTomcat(8888,MyTest.class);}}

完工!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4983.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8月汽车销量出炉:问界破万,智己破千,理想腰斩!埃安近创新高

每月1号&#xff08;或前一天&#xff09;发布上月销量&#xff0c;已成为造车新势力、广汽埃安、赛力斯&#xff08;原小康股份&#xff09;、极氪、合创、东风风神、神龙汽车等车企的宣传窗口。9月第一天&#xff0c;北京现代也加入了这一大军&#xff0c;早上8点半多&#x…

Win10离线安装choco方案

Win10离线安装choco方案问题描述前置条件,下载必须的nupkg解决办法: 离线安装choco修改install.ps1脚本修改第46行&#xff1a;修改第277行:powersell开启信任脚本策略以管理员powershell执行安装脚本结果验证问题描述 安装choco的时候,总是超时失败. 前置条件,下载必须的nupk…

Android 动态更新Menu菜单

1. 需求描述 Android Menu菜单是比较常见的功能&#xff0c;在ActionBar or ToolBar上显示&#xff0c;点击更多(3个点)&#xff0c;会有下拉列表菜单展示, 在工作项目中有个小需求改动: 在 ToolBar上添加一个图标&#xff0c;点击后会切换图标状态&#xff0c;界面也会显示对…

搭建简易Spring-ioc框架

SpringFrameWork系列1 文章目录SpringFrameWork系列1一、谈谈对Spring的认识二、控制反转(ioc)的作用2.1 ioc的优缺点三、搭建Spring-ioc框架一、谈谈对Spring的认识 Spring是一个开源框架&#xff0c;是为了解决企业应用开发的复杂性而产生的。 特征&#xff1a;轻量级别&…

第66章 基于.Net(Core)x框架的开源分页插件

1 Jquery DataTable 分页插件 Jquery DataTable分页插件是完全基于javaScript的&#xff0c;所以它是跨框架的&#xff0c;即不管你使用的是那种语言&#xff0c;那种平台开发网站程序&#xff0c;基本上都能通过使用Jquery DataTable分页插件实现分页操作。 在nopCommerce开发…

TASK04分组|joyfulpandas

目录一、分组模式及其对象1. 分组的一般模式2. 分组依据的本质【练一练】【END】3.Groupby对象【练一练】【END】 size4. 分组的三大操作二、聚合函数1. 内置聚合函数【练一练】【END】2. agg方法【练一练】【练一练】【END】三、变换和过滤1. 变换函数与transform方法【练一练…

02|一条MySQL更新语句是如何执行的

02|一条MySQL更新语句是如何执行的 update T set cc1 where ID2;其实一条更新语句的执行操作和查询语句的执行操作基本相同->一条SQL查询语句是如何查询的&#xff1f;&#xff0c;唯一不同的是一条更新语句在执行过程中需要涉及到两个日志操作&#xff08;redo log、binlo…

四、集合

四、集合 集合和数组区别 &#xff08;1&#xff09;数组定长&#xff0c;集合不定长&#xff08;2&#xff09;数组可存基础数据类型和引用类型&#xff0c;集合只能存引用类型 位置&#xff1a;java.util.*; 这是一位仁兄的笔记&#xff0c;师出同门&#xff0c;点我跳转~ 1、…

高级js 面向对象 和面向过程 三种函数

判断数据类型 // 创建一个Cat对象&#xff0c;属性:颜色&#xff0c;品种&#xff0c;行为:吃&#xff0c;跑&#xff0c;捉老鼠var Cat new Object() //new一个对象Cat.catys red //属性Cat.catname cat //对象名// 行为Cat.catxw function () {console.log("喜欢跑&…

Python3,我用这种方式讲解python模块,80岁的奶奶都说能理解。建议收藏 ~ ~

Python模块讲解1、引言2、python模块详解2.1 含义2.2 代码示例2.3 进阶3、总结1、引言 小屌丝&#xff1a;鱼哥&#xff0c;你看天上的月亮越来越圆了。 小鱼&#xff1a;唉~ 又是一年团圆夜&#xff0c;又是一年中秋节。 小屌丝&#xff1a;嘿嘿&#xff0c;可不滴&#xff0…

二维凸包问题

什么是二维凸包 假设墙上顶一组钉子&#xff0c;这些钉子的集合为X&#xff0c;我们用橡皮筋围住这些钉子&#xff0c;橡皮筋的形状就是凸包(来源于网络)。 向量的叉乘 对于两个向量pq⃗\vec{pq}pq​和qr⃗\vec{qr}qr​ 如果pq⃗\vec{pq}pq​和qr⃗\vec{qr}qr​的叉积结果大于0…

分销商城小程序开发运营逻辑是什么?

商城分销现在用的人比较多&#xff0c;其中用的最多的差不多就是二级分销、三级分销&#xff0c;除了这两种分销方式&#xff0c;还有一种是一级分销&#xff0c;不过裂变效果可能不如二级分销、三级分销要好&#xff0c;所以用的人不是特别的多。 二级分销跟三级分销的逻辑都差…

C++PrimerPlus跟读记录【第五章】循环和关系表达式

1、for 循环 for(initialization; test-expression; updata-expression)test-expression 关系表达式&#xff0c;结果强制为bool类型&#xff0c;true or false。 表达式和语句 C表达式是 值 或 值与运算符的组合&#xff0c;每个表达式都有值。表达式只要加上分号&#xff0…

剑指offer32-42字符串数组的应用

剑指 Offer II 032. 有效的变位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断它们是不是一组变位词&#xff08;字母异位词&#xff09;。t 是 s的变位词等价于「两个字符串不相等且两个字符串排序后相等」 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同…

QT QTextEdit富文本插入字体-表格-编号-图片-查找-语法高亮功能

QT QTextEdit富文本插入字体-表格-编号-图片与查找功能&#xff0c;输入char 自动变成蓝色-语法高亮功能 QTQTextEdit富文本插入字体-表格-编号-图片-查找-语法高亮功能.rar-QT文档类资源-CSDN下载QTQTextEdit富文本插入字体-表格-编号-图片-查找-语法高亮功能.rarhttps:/更多…

Vue使用脚手架(ref、props、mixin、插件、scoped)(七)

系列文章目录 第一章&#xff1a;Vue基础知识笔记&#xff08;模板语法、数据绑定、事件处理、计算属性&#xff09;&#xff08;一&#xff09; 第二章&#xff1a;Vue基础知识&#xff08;计算属性、监视属性、computed和watch之间的区别、绑定样式&#xff09;&#xff08;…

四、 java的对象和类

四、 java的对象和类 对象&#xff08;Object&#xff09;&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff0c;它的状态有&#xff1a;颜色、名字、品种&#xff1b;行为有&#xff1a;摇尾巴、叫、吃等。类&#xff08;c…

物理服务器安装CentOS 7操作系统

目录 1、下载系统镜像 2、制作安装盘 2.1 方法一&#xff1a;光盘制作 2.2 方法二&#xff1a;U盘制作 3、更改bios启动顺序 4、安装CentOS 7操作系统 4.1 安装命令选择&#xff0c;及常见错误解决 4.2 语言选择 4.3 时区选择 4.4 软件选择 4.5 安装位置选择 4.6 手…

猿创征文|【C++游戏引擎Easy2D】学C++还不会绘制一个简单的二维图形?一篇文章教会你

&#x1f9db;‍♂️iecne个人主页&#xff1a;&#xff1a;iecne的学习日志 &#x1f4a1;每天关注iecne的作品&#xff0c;一起进步 &#x1f4aa;学C必看iecne 本文专栏&#xff1a;【C游戏引擎】. &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; ✨前…

Apache Maven 3.6.0的下载安装和环境配置(详细图解+不限速下载链接)

标题工具/原料 apache-maven-3.6.0 下载地址 云盘不限速下载 或者进入官网按下图下载 方法/步骤一 安装 打开压缩包&#xff0c;将maven压缩包解压至软件安装处&#xff0c;建议D根目录或其他&#xff0c;记住安装位置 类似于 方法/步骤二 环境变量配置 变量 1.新建变…