├── .gitignore
├── LICENSE
├── README.md
├── html
├── about.html
├── articlelist.html
├── comment.html
├── detail.html
├── index.html
├── note.html
├── particle
│ ├── foot.html
│ ├── head.html
│ ├── layout.html
│ └── side.html
├── production.html
├── record.html
└── timeline.html
└── res
├── css
├── about.css
├── article-detail.css
├── article-record.css
├── blog-pace.css
├── comment.css
├── prettify.css
├── site-animate.css
├── site-media.css
├── site.css
├── timeline.css
└── wangEditor.css
├── images
├── Leo.jpg
├── about_bg1.jpg
├── about_bg2.jpg
├── about_bg3.jpg
├── about_bg4.jpg
├── ali_reward.jpg
├── bg.png
├── bg3.png
├── bg5.png
├── carousel
│ ├── blog2.png
│ └── carousel_001.png
├── cd-icon-location.svg
├── cd-icon-movie.svg
├── cd-icon-picture.svg
├── cover
│ ├── 201705102148110621.jpg
│ └── 201708252044567037.jpg
├── global
│ ├── Logo_100.png
│ ├── Logo_40.png
│ ├── Logo_64.png
│ ├── handshake.png
│ ├── liuyan.png
│ ├── messagewall.png
│ ├── pinglun.png
│ ├── qq_32.png
│ ├── qzone_32.png
│ ├── reword.jpg
│ ├── wechat_32.png
│ ├── weibo_32.png
│ └── xitong.png
├── messagewall.png
├── prd.jpg
└── wx_reward.png
├── js
├── blocksit.js
├── comment.js
├── homepage.js
├── jquery.nav.js
├── modernizr.js
├── pace.min.js
├── prettify.js
├── site.js
└── unslider.js
└── lib
├── font-awesome
├── HELP-US-OUT.txt
├── css
│ ├── font-awesome.css
│ └── font-awesome.min.css
├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ └── fontawesome-webfont.woff2
├── less
│ ├── animated.less
│ ├── bordered-pulled.less
│ ├── core.less
│ ├── fixed-width.less
│ ├── font-awesome.less
│ ├── icons.less
│ ├── larger.less
│ ├── list.less
│ ├── mixins.less
│ ├── path.less
│ ├── rotated-flipped.less
│ ├── screen-reader.less
│ ├── stacked.less
│ └── variables.less
└── scss
│ ├── _animated.scss
│ ├── _bordered-pulled.scss
│ ├── _core.scss
│ ├── _fixed-width.scss
│ ├── _icons.scss
│ ├── _larger.scss
│ ├── _list.scss
│ ├── _mixins.scss
│ ├── _path.scss
│ ├── _rotated-flipped.scss
│ ├── _screen-reader.scss
│ ├── _stacked.scss
│ ├── _variables.scss
│ └── font-awesome.scss
├── jquery.event.move.js
├── jquery.event.swipe.js
├── layui
├── css
│ ├── layui.css
│ ├── layui.mobile.css
│ └── modules
│ │ ├── code.css
│ │ ├── laydate
│ │ └── default
│ │ │ └── laydate.css
│ │ ├── layer
│ │ └── default
│ │ │ ├── icon-ext.png
│ │ │ ├── icon.png
│ │ │ ├── layer.css
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1.gif
│ │ │ └── loading-2.gif
│ │ └── layim
│ │ ├── html
│ │ ├── chatlog.html
│ │ ├── find.html
│ │ ├── getmsg.json
│ │ └── msgbox.html
│ │ ├── layim.css
│ │ ├── mobile
│ │ └── layim.css
│ │ ├── skin
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── 4.jpg
│ │ ├── 5.jpg
│ │ └── logo.jpg
│ │ └── voice
│ │ └── default.mp3
├── font
│ ├── iconfont.eot
│ ├── iconfont.svg
│ ├── iconfont.ttf
│ └── iconfont.woff
├── images
│ └── face
│ │ ├── 0.gif
│ │ ├── 1.gif
│ │ ├── 10.gif
│ │ ├── 11.gif
│ │ ├── 12.gif
│ │ ├── 13.gif
│ │ ├── 14.gif
│ │ ├── 15.gif
│ │ ├── 16.gif
│ │ ├── 17.gif
│ │ ├── 18.gif
│ │ ├── 19.gif
│ │ ├── 2.gif
│ │ ├── 20.gif
│ │ ├── 21.gif
│ │ ├── 22.gif
│ │ ├── 23.gif
│ │ ├── 24.gif
│ │ ├── 25.gif
│ │ ├── 26.gif
│ │ ├── 27.gif
│ │ ├── 28.gif
│ │ ├── 29.gif
│ │ ├── 3.gif
│ │ ├── 30.gif
│ │ ├── 31.gif
│ │ ├── 32.gif
│ │ ├── 33.gif
│ │ ├── 34.gif
│ │ ├── 35.gif
│ │ ├── 36.gif
│ │ ├── 37.gif
│ │ ├── 38.gif
│ │ ├── 39.gif
│ │ ├── 4.gif
│ │ ├── 40.gif
│ │ ├── 41.gif
│ │ ├── 42.gif
│ │ ├── 43.gif
│ │ ├── 44.gif
│ │ ├── 45.gif
│ │ ├── 46.gif
│ │ ├── 47.gif
│ │ ├── 48.gif
│ │ ├── 49.gif
│ │ ├── 5.gif
│ │ ├── 50.gif
│ │ ├── 51.gif
│ │ ├── 52.gif
│ │ ├── 53.gif
│ │ ├── 54.gif
│ │ ├── 55.gif
│ │ ├── 56.gif
│ │ ├── 57.gif
│ │ ├── 58.gif
│ │ ├── 59.gif
│ │ ├── 6.gif
│ │ ├── 60.gif
│ │ ├── 61.gif
│ │ ├── 62.gif
│ │ ├── 63.gif
│ │ ├── 64.gif
│ │ ├── 65.gif
│ │ ├── 66.gif
│ │ ├── 67.gif
│ │ ├── 68.gif
│ │ ├── 69.gif
│ │ ├── 7.gif
│ │ ├── 70.gif
│ │ ├── 71.gif
│ │ ├── 8.gif
│ │ └── 9.gif
├── lay
│ └── modules
│ │ ├── carousel.js
│ │ ├── code.js
│ │ ├── element.js
│ │ ├── flow.js
│ │ ├── form.js
│ │ ├── jquery.js
│ │ ├── laydate.js
│ │ ├── layedit.js
│ │ ├── layer.js
│ │ ├── layim.js
│ │ ├── laypage.js
│ │ ├── laytpl.js
│ │ ├── mobile.js
│ │ ├── table.js
│ │ ├── tree.js
│ │ ├── upload.js
│ │ └── util.js
├── layui.all.js
└── layui.js
└── unslider
├── js
└── unslider.js
├── less
├── unslider-dots.less
├── unslider.less
├── unslider
│ ├── dots.less
│ └── reset.less
└── variables.less
└── scss
├── unslider.css
├── unslider.scss
├── unslider
├── dots.scss
└── reset.scss
└── variables.scss
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015/2017 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # Visual Studio 2017 auto generated files
33 | Generated\ Files/
34 |
35 | # MSTest test Results
36 | [Tt]est[Rr]esult*/
37 | [Bb]uild[Ll]og.*
38 |
39 | # NUNIT
40 | *.VisualState.xml
41 | TestResult.xml
42 |
43 | # Build Results of an ATL Project
44 | [Dd]ebugPS/
45 | [Rr]eleasePS/
46 | dlldata.c
47 |
48 | # Benchmark Results
49 | BenchmarkDotNet.Artifacts/
50 |
51 | # .NET Core
52 | project.lock.json
53 | project.fragment.lock.json
54 | artifacts/
55 | **/Properties/launchSettings.json
56 |
57 | # StyleCop
58 | StyleCopReport.xml
59 |
60 | # Files built by Visual Studio
61 | *_i.c
62 | *_p.c
63 | *_i.h
64 | *.ilk
65 | *.meta
66 | *.obj
67 | *.iobj
68 | *.pch
69 | *.pdb
70 | *.ipdb
71 | *.pgc
72 | *.pgd
73 | *.rsp
74 | *.sbr
75 | *.tlb
76 | *.tli
77 | *.tlh
78 | *.tmp
79 | *.tmp_proj
80 | *.log
81 | *.vspscc
82 | *.vssscc
83 | .builds
84 | *.pidb
85 | *.svclog
86 | *.scc
87 |
88 | # Chutzpah Test files
89 | _Chutzpah*
90 |
91 | # Visual C++ cache files
92 | ipch/
93 | *.aps
94 | *.ncb
95 | *.opendb
96 | *.opensdf
97 | *.sdf
98 | *.cachefile
99 | *.VC.db
100 | *.VC.VC.opendb
101 |
102 | # Visual Studio profiler
103 | *.psess
104 | *.vsp
105 | *.vspx
106 | *.sap
107 |
108 | # Visual Studio Trace Files
109 | *.e2e
110 |
111 | # TFS 2012 Local Workspace
112 | $tf/
113 |
114 | # Guidance Automation Toolkit
115 | *.gpState
116 |
117 | # ReSharper is a .NET coding add-in
118 | _ReSharper*/
119 | *.[Rr]e[Ss]harper
120 | *.DotSettings.user
121 |
122 | # JustCode is a .NET coding add-in
123 | .JustCode
124 |
125 | # TeamCity is a build add-in
126 | _TeamCity*
127 |
128 | # DotCover is a Code Coverage Tool
129 | *.dotCover
130 |
131 | # AxoCover is a Code Coverage Tool
132 | .axoCover/*
133 | !.axoCover/settings.json
134 |
135 | # Visual Studio code coverage results
136 | *.coverage
137 | *.coveragexml
138 |
139 | # NCrunch
140 | _NCrunch_*
141 | .*crunch*.local.xml
142 | nCrunchTemp_*
143 |
144 | # MightyMoose
145 | *.mm.*
146 | AutoTest.Net/
147 |
148 | # Web workbench (sass)
149 | .sass-cache/
150 |
151 | # Installshield output folder
152 | [Ee]xpress/
153 |
154 | # DocProject is a documentation generator add-in
155 | DocProject/buildhelp/
156 | DocProject/Help/*.HxT
157 | DocProject/Help/*.HxC
158 | DocProject/Help/*.hhc
159 | DocProject/Help/*.hhk
160 | DocProject/Help/*.hhp
161 | DocProject/Help/Html2
162 | DocProject/Help/html
163 |
164 | # Click-Once directory
165 | publish/
166 |
167 | # Publish Web Output
168 | *.[Pp]ublish.xml
169 | *.azurePubxml
170 | # Note: Comment the next line if you want to checkin your web deploy settings,
171 | # but database connection strings (with potential passwords) will be unencrypted
172 | *.pubxml
173 | *.publishproj
174 |
175 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
176 | # checkin your Azure Web App publish settings, but sensitive information contained
177 | # in these scripts will be unencrypted
178 | PublishScripts/
179 |
180 | # NuGet Packages
181 | *.nupkg
182 | # The packages folder can be ignored because of Package Restore
183 | **/[Pp]ackages/*
184 | # except build/, which is used as an MSBuild target.
185 | !**/[Pp]ackages/build/
186 | # Uncomment if necessary however generally it will be regenerated when needed
187 | #!**/[Pp]ackages/repositories.config
188 | # NuGet v3's project.json files produces more ignorable files
189 | *.nuget.props
190 | *.nuget.targets
191 |
192 | # Microsoft Azure Build Output
193 | csx/
194 | *.build.csdef
195 |
196 | # Microsoft Azure Emulator
197 | ecf/
198 | rcf/
199 |
200 | # Windows Store app package directories and files
201 | AppPackages/
202 | BundleArtifacts/
203 | Package.StoreAssociation.xml
204 | _pkginfo.txt
205 | *.appx
206 |
207 | # Visual Studio cache files
208 | # files ending in .cache can be ignored
209 | *.[Cc]ache
210 | # but keep track of directories ending in .cache
211 | !*.[Cc]ache/
212 |
213 | # Others
214 | ClientBin/
215 | ~$*
216 | *~
217 | *.dbmdl
218 | *.dbproj.schemaview
219 | *.jfm
220 | *.pfx
221 | *.publishsettings
222 | orleans.codegen.cs
223 |
224 | # Including strong name files can present a security risk
225 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
226 | #*.snk
227 |
228 | # Since there are multiple workflows, uncomment next line to ignore bower_components
229 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
230 | #bower_components/
231 |
232 | # RIA/Silverlight projects
233 | Generated_Code/
234 |
235 | # Backup & report files from converting an old project file
236 | # to a newer Visual Studio version. Backup files are not needed,
237 | # because we have git ;-)
238 | _UpgradeReport_Files/
239 | Backup*/
240 | UpgradeLog*.XML
241 | UpgradeLog*.htm
242 | ServiceFabricBackup/
243 | *.rptproj.bak
244 |
245 | # SQL Server files
246 | *.mdf
247 | *.ldf
248 | *.ndf
249 |
250 | # Business Intelligence projects
251 | *.rdl.data
252 | *.bim.layout
253 | *.bim_*.settings
254 | *.rptproj.rsuser
255 |
256 | # Microsoft Fakes
257 | FakesAssemblies/
258 |
259 | # GhostDoc plugin setting file
260 | *.GhostDoc.xml
261 |
262 | # Node.js Tools for Visual Studio
263 | .ntvs_analysis.dat
264 | node_modules/
265 |
266 | # Visual Studio 6 build log
267 | *.plg
268 |
269 | # Visual Studio 6 workspace options file
270 | *.opt
271 |
272 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
273 | *.vbw
274 |
275 | # Visual Studio LightSwitch build output
276 | **/*.HTMLClient/GeneratedArtifacts
277 | **/*.DesktopClient/GeneratedArtifacts
278 | **/*.DesktopClient/ModelManifest.xml
279 | **/*.Server/GeneratedArtifacts
280 | **/*.Server/ModelManifest.xml
281 | _Pvt_Extensions
282 |
283 | # Paket dependency manager
284 | .paket/paket.exe
285 | paket-files/
286 |
287 | # FAKE - F# Make
288 | .fake/
289 |
290 | # JetBrains Rider
291 | .idea/
292 | *.sln.iml
293 |
294 | # CodeRush
295 | .cr/
296 |
297 | # Python Tools for Visual Studio (PTVS)
298 | __pycache__/
299 | *.pyc
300 |
301 | # Cake - Uncomment if you are using it
302 | # tools/**
303 | # !tools/packages.config
304 |
305 | # Tabs Studio
306 | *.tss
307 |
308 | # Telerik's JustMock configuration file
309 | *.jmconfig
310 |
311 | # BizTalk build output
312 | *.btp.cs
313 | *.btm.cs
314 | *.odx.cs
315 | *.xsd.cs
316 |
317 | # OpenCover UI analysis results
318 | OpenCover/
319 |
320 | # Azure Stream Analytics local run output
321 | ASALocalRun/
322 |
323 | # MSBuild Binary and Structured Log
324 | *.binlog
325 |
326 | # NVidia Nsight GPU debugger configuration file
327 | *.nvuser
328 |
329 | # MFractors (Xamarin productivity tool) working folder
330 | .mfractor/
331 | .vscode/launch.json
332 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Leo
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 不落阁2.0前端模板
2 |
3 | 基于Layui前端框架
4 |
5 | 拥有博客基本元素、大方简洁的风格,给用户良好体验的同时也不失优雅。
6 |
7 | **Blog 2.0 Template.**
8 |
9 | Powered by Layui.
10 |
11 | Great experience and Graceful.
12 |
13 | ## 用到的插件
14 | [Blocksit.js瀑布流JQ插件](https://github.com/kennyooi/blocksit "Blocksit.js瀑布流JQ插件")
15 |
16 | jquery.nav.js定位导航滚动JQ插件
17 |
18 | prettify.js代码高亮插件
19 |
20 | wangEditor编辑器样式表
21 |
22 | [unslider轮播插件](https://www.bootcss.com/p/unslider/ "unslider轮播插件")
23 |
24 | [pace.js网页加载进度条](http://github.hubspot.com/pace/docs/welcome/ "pace.js网页加载进度条")
25 |
26 | [Font-Awesome字体图标](http://www.fontawesome.com.cn/ "Font-Awesome字体图标")
27 |
28 |
29 | ## 使用案例
30 | [不落阁 - 一个.NET程序员的个人博客](https://www.leo96.com "不落阁 - 一个.NET程序员的个人博客")
31 |
--------------------------------------------------------------------------------
/html/particle/foot.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/html/particle/head.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/html/particle/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Document
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
62 |
63 |
64 |
65 |
66 |
67 |
74 |
75 |
76 | -
77 | 网站首页
78 |
79 | -
80 | 学海无涯
81 |
82 | -
83 | 点点滴滴
84 |
85 | -
86 | 个人作品
87 |
88 | -
89 | 留言交流
90 |
91 | -
92 | 关于本站
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/html/particle/side.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 | 网站首页
5 |
6 | -
7 | 学海无涯
8 |
9 | -
10 | 点点滴滴
11 |
12 | -
13 | 个人作品
14 |
15 | -
16 | 留言交流
17 |
18 | -
19 | 关于本站
20 |
21 |
--------------------------------------------------------------------------------
/res/css/about.css:
--------------------------------------------------------------------------------
1 | /* 关于本站页面样式表
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:30:08
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:30:42
6 | */
7 | .blog-about-container {
8 | background-color: #fff;
9 | border: 1px solid #ddd;
10 | border-top: none;
11 | }
12 |
13 | .blog-nav-follow {
14 | text-align: center;
15 | background-color: #393D49;
16 | z-index: 1;
17 | }
18 |
19 | .blog-nav-follow li {
20 | display: inline-block;
21 | }
22 |
23 | .blog-nav-follow li a {
24 | display: block;
25 | height: 40px;
26 | line-height: 40px;
27 | padding: 0 10px;
28 | color: #fff;
29 | }
30 |
31 | .blog-nav-follow li.current a {
32 | background-color: #fff;
33 | color: #333;
34 | }
35 |
36 | .section {
37 | padding: 10px;
38 | }
39 |
40 | .anchor {
41 | position: relative;
42 | top: -50px;
43 | }
44 |
45 | .fixed {
46 | position: fixed;
47 | top: 0;
48 | left: 0;
49 | right: 0;
50 | }
51 |
52 | .blog-nav-follow.fixed li a {
53 | height: 50px;
54 | line-height: 50px;
55 | }
56 |
57 | .author-bg {
58 | text-align: center;
59 | padding: 10px 0;
60 | position: relative;
61 | }
62 |
63 | .author-bg .bg {
64 | width: 100%;
65 | height: auto;
66 | }
67 |
68 | .author-intro {
69 | margin-top: 194px;
70 | height: 100px;
71 | left: 0;
72 | right: 0;
73 | top: 10px;
74 | background-color: rgba(0, 0, 0, 0.2);
75 | color: #fff;
76 | position: absolute;
77 | }
78 |
79 | .author-intro img {
80 | width: 90px;
81 | height: 90px;
82 | -moz-border-radius: 50%;
83 | -webkit-border-radius: 50%;
84 | border-radius: 50%;
85 | padding: 2px;
86 | background-color: #fff;
87 | -moz-box-sizing: border-box;
88 | -webkit-box-sizing: border-box;
89 | box-sizing: border-box;
90 | -moz-box-shadow: 0 0 20px #1e9fff;
91 | -webkit-box-shadow: 0 0 20px #1e9fff;
92 | box-shadow: 0 0 20px #1e9fff;
93 | margin-top: -55px;
94 | margin-bottom: 5px;
95 | }
96 |
97 | .author-intro h2,
98 | .author-intro h4 {
99 | position: relative;
100 | margin: 5px 0;
101 | }
102 |
103 | .text-content {
104 | margin-top: 5px;
105 | }
106 |
107 | .text-content p {
108 | line-height: 20px;
109 | margin-bottom: 5px;
110 | text-indent: 2em;
111 | color: #666;
112 | }
113 |
114 | .bg-box {
115 | position: relative;
116 | }
117 |
118 | .bg-box .mask {
119 | background-color: rgba(0, 0, 0, 0.2);
120 | position: absolute;
121 | top: 0;
122 | bottom: 0;
123 | right: 0;
124 | left: 0;
125 | }
126 |
127 | .friendlink-item {
128 | height: 52px;
129 | position: relative;
130 | padding-left: 80px;
131 | text-align: center;
132 | -moz-box-sizing: border-box;
133 | -webkit-box-sizing: border-box;
134 | box-sizing: border-box;
135 | border: 1px solid #eee;
136 | display: block;
137 | color:#333;
138 | }
139 |
140 | .friendlink-item:hover {
141 | border: 1px solid #1e9fff;
142 | -moz-transition: all .3s;
143 | -o-transition: all .3s;
144 | -webkit-transition: all .3s;
145 | transition: all .3s;
146 | color: #333;
147 | }
148 |
149 | .friendlink-item img {
150 | position: absolute;
151 | width: 40px;
152 | height: 40px;
153 | border-radius: 50%;
154 | left: 20px;
155 | top: 5px;
156 | }
157 |
158 | .friendlink-item h2 {
159 | padding: 2px 0;
160 | }
161 |
162 | @media (max-width: 767px) {
163 | .author-bg {
164 | height: 200px;
165 | }
166 |
167 | .bg-box {
168 | height: 100px;
169 | overflow: hidden;
170 | }
171 |
172 | .bg-box .bg {
173 | height: 100%;
174 | width: auto;
175 | }
176 |
177 |
178 | .author-bg .author-intro {
179 | margin-top: 100px;
180 | }
181 | }
182 |
183 |
184 | @media (min-width: 768px) {
185 | .author-bg {
186 | height: 183px;
187 | }
188 |
189 | .author-intro {
190 | margin-top: 83px;
191 | }
192 |
193 | .text-content p {
194 | font-size: 16px;
195 | }
196 | }
197 |
198 | @media (min-width: 992px) {
199 | .author-bg {
200 | height: 242px;
201 | }
202 |
203 | .author-intro {
204 | margin-top: 142px;
205 | }
206 | }
207 |
208 | @media (min-width: 1200px) {
209 | .author-bg {
210 | height: 294px;
211 | }
212 |
213 | .author-intro {
214 | margin-top: 194px;
215 | }
216 | }
217 |
--------------------------------------------------------------------------------
/res/css/article-detail.css:
--------------------------------------------------------------------------------
1 | /* 文章详情页样式表
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:32:01
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:32:01
6 | */
7 |
8 | .left {
9 | -moz-transition: all .6s;
10 | -o-transition: all .6s;
11 | -webkit-transition: all .6s;
12 | transition: all .6s;
13 | }
14 |
15 | .article-detail {
16 | background: #fff;
17 | padding: 10px 15px;
18 | margin-bottom: 15px;
19 | overflow-x: hidden;
20 | border: 1px solid #ddd;
21 | }
22 |
23 | .article-tool {
24 | height: 24px;
25 | line-height: 24px;
26 | margin-bottom: 15px;
27 | }
28 |
29 | .article-tool .tool-box {
30 | float: right;
31 | }
32 |
33 | .article-detail-title {
34 | text-align: center;
35 | margin: 10px -15px 15px;
36 | color: #555;
37 | background-color: #f2f2f2;
38 | font-weight: bold;
39 | font-size: 18px;
40 | line-height: 30px;
41 | padding: 5px 0;
42 | -moz-box-sizing: border-box;
43 | -webkit-box-sizing: border-box;
44 | box-sizing: border-box;
45 | }
46 |
47 | .article-detail-abstract {
48 | padding: 10px;
49 | margin: 10px 0;
50 | margin-top: 20px;
51 | border: 1px solid #e2e2e2;
52 | line-height: 26px;
53 | }
54 |
55 | .article-detail-abstract span {
56 | margin-right: 5px;
57 | }
58 |
59 | .article-detail-content {
60 | padding: 10px 5px;
61 | }
62 |
63 | .component-box {
64 | margin: 0 auto;
65 | text-align: center;
66 | font-size: 0;
67 | position: relative;
68 | width: 260px;
69 | }
70 |
71 | .component-box a {
72 | display: inline-block;
73 | font-size: 14px;
74 | }
75 |
76 | .component-box .fa {
77 | text-indent: 0;
78 | margin-right: 3px;
79 | }
80 |
81 | .component-box .praise,
82 | .component-box .share {
83 | width: 110px;
84 | height: 34px;
85 | line-height: 34px;
86 | color: #fff;
87 | }
88 |
89 | .component-box .praise {
90 | padding-right: 20px;
91 | background: #FF5722;
92 | text-indent: 1em;
93 | border-top-left-radius: 50px;
94 | border-bottom-left-radius: 50px;
95 | background: -webkit-linear-gradient(left, #ff5722, #f78d6b); /* Safari 5.1 - 6.0 */
96 | background: -o-linear-gradient(right, #ff5722, #f78d6b); /* Opera 11.1 - 12.0 */
97 | background: -moz-linear-gradient(right, #ff5722, #f78d6b); /* Firefox 3.6 - 15 */
98 | background: linear-gradient(to right,#ff5722,#f78d6b); /* 标准的语法 */
99 | }
100 |
101 | .component-box .praise:hover {
102 | background: #FF5722;
103 | }
104 |
105 | .component-box .share {
106 | background: #FFB800;
107 | padding-left: 20px;
108 | text-indent: .8em;
109 | border-top-right-radius: 50px;
110 | border-bottom-right-radius: 50px;
111 | background: -webkit-linear-gradient(left, #ffd362, #ffb800); /* Safari 5.1 - 6.0 */
112 | background: -o-linear-gradient(right, #ffd362, #ffb800); /* Opera 11.1 - 12.0 */
113 | background: -moz-linear-gradient(right, #ffd362, #ffb800); /* Firefox 3.6 - 15 */
114 | background: linear-gradient(to right,#ffd362,#ffb800); /* 标准的语法 */
115 | }
116 |
117 | .component-box .share:hover {
118 | background: #FFB800;
119 | }
120 |
121 | .component-box .reword {
122 | border-radius: 50%;
123 | width: 40px;
124 | height: 40px;
125 | line-height: 40px;
126 | color: #fff;
127 | position: absolute;
128 | left: 110px;
129 | top: -6px;
130 | border: 3px solid #fff;
131 | background-color: #1E9FFF;
132 | font-size: 16px;
133 | }
134 |
135 | .article-detail-copyright {
136 | border: 1px solid #e2e2e2;
137 | padding: 5px 10px !important;
138 | margin-top: 10px;
139 | }
140 |
141 | .article-detail-copyright p {
142 | margin: 5px 0 !important;
143 | }
144 |
145 | .article-component {
146 | border: 1px solid #ddd;
147 | border-top: none;
148 | margin-top: -15px;
149 | margin-bottom: 15px;
150 | background-color: #fff;
151 | padding: 20px 0;
152 | }
153 |
154 | .article-music {
155 | border: 1px solid #ddd;
156 | margin-bottom: 15px;
157 | background-color: #fff;
158 | }
159 |
160 | .article-music .layui-badge {
161 | border-radius: 0;
162 | margin-left: 5px;
163 | margin-top: 5px;
164 | margin-bottom: 5px;
165 | background-color: #5fb878;
166 | }
167 |
168 | .article-music .aplayer {
169 | -moz-box-shadow: none;
170 | -webkit-box-shadow: none;
171 | box-shadow: none;
172 | }
173 |
174 | .article-music .aplayer .aplayer-pic {
175 | border: 1px solid #f2f2f2;
176 | -moz-box-sizing: border-box;
177 | -webkit-box-sizing: border-box;
178 | box-sizing: border-box;
179 | }
180 |
181 | .article-music .aplayer.aplayer-withlist .aplayer-info {
182 | border-bottom: none;
183 | }
184 |
185 | .article-music .aplayer .aplayer-list {
186 | border: 1px solid #e9e9e9;
187 | margin-top: 5px;
188 | }
189 |
190 | .article-music .aplayer .aplayer-list ol li.aplayer-list-light {
191 | background-color: #f2f2f2;
192 | }
193 |
194 | .article-music .aplayer .aplayer-list ol li:hover {
195 | background-color: transparent;
196 | }
197 |
198 | .article-music .aplayer .aplayer-list ol li:hover > * {
199 | color: #01aaed
200 | }
201 | /*文章详情页END*/
202 | @media (max-width: 767px) {
203 | .article-detail {
204 | padding: 10px;
205 | font-size: 13px;
206 | }
207 |
208 | .article-detail-copyright p {
209 | font-size: 12px;
210 | }
211 | }
212 |
--------------------------------------------------------------------------------
/res/css/article-record.css:
--------------------------------------------------------------------------------
1 | /* 文章归档 样式表
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:32:15
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:32:15
6 | */
7 | .article-record-title {
8 | position: fixed;
9 | }
10 |
11 | .article-record-title li a {
12 | margin-bottom:8px;
13 | padding:10px;
14 | text-align: center;
15 | background-color: #fff;
16 | cursor: pointer;
17 | font-size: 16px;
18 | display: block;
19 | border: 1px solid #ddd;
20 | }
21 |
22 | .article-record-title li a:hover {
23 | color: initial;
24 | }
25 |
26 | .article-record-title li.selected a {
27 | background-color: #1E9FFF;
28 | color: #fff;
29 | -moz-transition: all .2s;
30 | -o-transition: all .2s;
31 | -webkit-transition: all .2s;
32 | transition: all .2s;
33 | }
34 |
35 | .article-record-content {
36 | padding: 10px 15px;
37 | background-color: #fff;
38 | border: 1px solid #ddd;
39 | }
40 |
41 | .article-record-item h4 {
42 | margin: 15px 0;
43 | }
44 |
45 | .article-record-item li {
46 | padding: 5px;
47 | overflow: hidden;
48 | white-space: nowrap;
49 | text-overflow: ellipsis;
50 | text-overflow: ellipsis; /* IE/Safari */
51 | -ms-text-overflow: ellipsis;
52 | -o-text-overflow: ellipsis; /* Opera */
53 | }
54 |
55 | .article-record-item li a {
56 | color: #666;
57 | }
58 |
59 | .article-record-item li a:hover {
60 | color: #1E9FFF;
61 | -moz-transition: all .3s;
62 | -o-transition: all .3s;
63 | -webkit-transition: all .3s;
64 | transition: all .3s;
65 | }
66 |
67 | .highlight {
68 | color: #fff !important;
69 | text-shadow: 0px 0px 2px #ff0000,0px 0px 2px #ff0000,0px 0px 2px #ff0000,0px 0px 2px #ff0000;
70 | }
71 |
72 |
73 | @media(max-width:767px) {
74 | .article-record-content {
75 | padding: 5px 10px;
76 | margin-left: 10px;
77 | }
78 |
79 | .article-record-item h4 {
80 | margin: 8px 0;
81 | }
82 | }
83 |
84 | @media (min-width: 768px) {
85 | .article-record-title {
86 | top: 179px;
87 | width: 112px;
88 | }
89 | }
90 |
91 | @media (min-width: 992px) {
92 | .article-record-title {
93 | top: 164px;
94 | width: 149.33px;
95 | }
96 | }
97 |
98 | @media (min-width: 1200px) {
99 | .article-record-title {
100 | width: 181px;
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/res/css/blog-pace.css:
--------------------------------------------------------------------------------
1 | /*pace theme*/
2 |
3 | .pace {
4 | -webkit-pointer-events: none;
5 | pointer-events: none;
6 | -webkit-user-select: none;
7 | -moz-user-select: none;
8 | user-select: none;
9 | }
10 |
11 | .pace-inactive {
12 | display: none;
13 | }
14 |
15 | .pace .pace-progress {
16 | background-color: #5FB878;
17 | position: fixed;
18 | z-index: 2000;
19 | top: 0;
20 | left: 0;
21 | height: 3px;
22 | box-shadow: 0 3px 8px #5FB878;
23 | }
24 |
25 | .pace .pace-progress-inner {
26 | display: block;
27 | position: absolute;
28 | right: 0px;
29 | width: 10px;
30 | height: 100%;
31 | box-shadow: 0 0 10px #5FB878, 0 0 5px #5FB878;
32 | opacity: 1.0;
33 | -webkit-transform: rotate(3deg) translate(0px, -4px);
34 | -moz-transform: rotate(3deg) translate(0px, -4px);
35 | -ms-transform: rotate(3deg) translate(0px, -4px);
36 | -o-transform: rotate(3deg) translate(0px, -4px);
37 | transform: rotate(3deg) translate(0px, -4px);
38 | }
39 |
40 | @media (min-width: 992px) {
41 | .pace .pace-activity {
42 | display: block;
43 | position: fixed;
44 | z-index: 2000;
45 | top: 15px;
46 | right: 15px;
47 | width: 14px;
48 | height: 14px;
49 | border: solid 2px transparent;
50 | border-top-color: #ddd;
51 | border-left-color: #ddd;
52 | border-radius: 10px;
53 | -webkit-animation: pace-spinner 400ms linear infinite;
54 | -moz-animation: pace-spinner 400ms linear infinite;
55 | -ms-animation: pace-spinner 400ms linear infinite;
56 | -o-animation: pace-spinner 400ms linear infinite;
57 | animation: pace-spinner 400ms linear infinite;
58 | }
59 | }
60 |
61 |
62 | @-webkit-keyframes pace-spinner {
63 | 0% {
64 | -webkit-transform: rotate(0deg);
65 | transform: rotate(0deg);
66 | }
67 |
68 | 100% {
69 | -webkit-transform: rotate(360deg);
70 | transform: rotate(360deg);
71 | }
72 | }
73 |
74 | @-moz-keyframes pace-spinner {
75 | 0% {
76 | -moz-transform: rotate(0deg);
77 | transform: rotate(0deg);
78 | }
79 |
80 | 100% {
81 | -moz-transform: rotate(360deg);
82 | transform: rotate(360deg);
83 | }
84 | }
85 |
86 | @-o-keyframes pace-spinner {
87 | 0% {
88 | -o-transform: rotate(0deg);
89 | transform: rotate(0deg);
90 | }
91 |
92 | 100% {
93 | -o-transform: rotate(360deg);
94 | transform: rotate(360deg);
95 | }
96 | }
97 |
98 | @-ms-keyframes pace-spinner {
99 | 0% {
100 | -ms-transform: rotate(0deg);
101 | transform: rotate(0deg);
102 | }
103 |
104 | 100% {
105 | -ms-transform: rotate(360deg);
106 | transform: rotate(360deg);
107 | }
108 | }
109 |
110 | @keyframes pace-spinner {
111 | 0% {
112 | transform: rotate(0deg);
113 | transform: rotate(0deg);
114 | }
115 |
116 | 100% {
117 | transform: rotate(360deg);
118 | transform: rotate(360deg);
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/res/css/comment.css:
--------------------------------------------------------------------------------
1 | /* 留言 样式表
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:32:39
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:32:39
6 | */
7 | .topdiv {
8 | text-align: center;
9 | background-color: #fff;
10 | border: 1px solid #ddd;
11 | }
12 |
13 | .topdiv-figure {
14 | display: inline-block;
15 | margin: 20px auto;
16 | }
17 |
18 | .topdiv-figure img {
19 | border-radius: 50px;
20 | }
21 |
22 | .topdiv-nickname {
23 | font-size: 32px;
24 | font-weight: bold;
25 | margin: 0 0 15px 0;
26 | }
27 |
28 | .topdiv-introduce {
29 | margin: 20px auto;
30 | font-size: 18px;
31 | width: 90%;
32 | }
33 |
34 | .topdiv-location {
35 | color: #808080;
36 | margin: 15px;
37 | }
38 |
39 | .topdiv-contact {
40 | margin: 15px;
41 | }
42 |
43 | .topdiv-contact > a {
44 | padding: 0 10px;
45 | }
46 |
47 | .chatroom {
48 | border: 1px solid #ddd;
49 | overflow: hidden;
50 | }
51 |
52 | .chatroom .scroll {
53 | overflow-y: auto;
54 | height: 300px;
55 | }
56 |
57 | .chatroom .layui-card-header .status {
58 | float: right;
59 | color: #ADADAD;
60 | width: 20px;
61 | text-align: center;
62 | line-height: 20px;
63 | margin-top: 11px;
64 | cursor: pointer;
65 | }
66 |
67 |
68 | .chatroom .layui-card-header .status.online {
69 | color: #09F175;
70 | }
71 |
72 | .chatroom-body {
73 | }
74 |
75 | .chatroom-editor,
76 | .chatroom-send {
77 | border-top: 1px solid #eaeaea;
78 | }
79 |
80 |
81 | .chatroom-editor .layui-layedit {
82 | border: none;
83 | }
84 |
85 | .chatroom-editor .layui-layedit-tool .layui-icon {
86 | width: 22px;
87 | height: 20px;
88 | line-height: 20px;
89 | font-size: 16px !important;
90 | }
91 |
92 | .chatroom-send {
93 | padding: 5px;
94 | text-align: right;
95 | }
96 |
97 | .chatroom-send .layui-btn {
98 | border-radius: 0;
99 | }
100 |
101 | .comment-editor {
102 | background-color: #fff;
103 | border: 1px solid #ddd;
104 | padding: 15px;
105 | padding-bottom: 0;
106 | }
107 |
108 | .comment-item,
109 | .comment-reply {
110 | padding-left: 60px;
111 | min-height: 100px;
112 | background-color: #fff;
113 | border: 1px solid #ddd;
114 | position: relative;
115 | }
116 |
117 | .comment-item-left {
118 | position: absolute;
119 | top: 0;
120 | left: 0;
121 | width: 60px;
122 | }
123 |
124 | .comment-item-left .useravator {
125 | padding: 3px;
126 | border: 1px solid #eaeaea;
127 | display: inline-block;
128 | margin: 6px;
129 | margin-bottom: 3px;
130 | }
131 |
132 | .comment-item-left .useravator img {
133 | width: 40px;
134 | height: 40px;
135 | }
136 |
137 | .comment-item-left .reply {
138 | text-align: center;
139 | margin-top: 5px;
140 | display: none;
141 | }
142 |
143 | .comment-item-left .reply .layui-btn {
144 | border-radius: 0;
145 | }
146 |
147 | .comment-item-right .content {
148 | padding: 9px;
149 | min-height: 60px;
150 | }
151 |
152 | .comment-item-right .createtime {
153 | font-size: 12px;
154 | color: #999;
155 | height: 20px;
156 | line-height: 20px;
157 | text-align: right;
158 | padding: 5px 10px;
159 | }
160 |
161 |
162 | .comment-item .layui-layedit {
163 | margin-top: 10px;
164 | margin-left: -50px;
165 | margin-right: 10px;
166 | }
167 |
168 | .comment-item .layui-layedit-tool .layui-icon {
169 | width: 18px;
170 | height: 16px;
171 | line-height: 16px;
172 | font-size: 14px !important;
173 | }
174 |
175 | /*回复*/
176 | .comment-reply {
177 | border: none;
178 | min-height: 60px;
179 | }
180 |
181 | .comment-reply:last-child {
182 | margin-bottom: 10px;
183 | }
184 |
185 | .comment-reply .comment-item-right .content {
186 | min-height: 30px;
187 | font-size: 12px;
188 | padding: 0 5px;
189 | padding-top: 6px;
190 | }
191 |
192 | .comment-reply .comment-item-right .createtime {
193 | text-align: left;
194 | padding: 0 5px;
195 | }
196 |
197 | .status-select {
198 | padding: 10px 0;
199 | }
200 |
201 | .status-select ul {
202 | width: 130px;
203 | font-size: 12px;
204 | }
205 |
206 | .status-select ul li {
207 | line-height: 22px;
208 | padding: 3px 10px;
209 | cursor: pointer;
210 | }
211 |
212 | .status-select ul li:hover {
213 | background-color: #eee;
214 | }
215 |
216 | .systemmsg {
217 | font-size: 12px;
218 | color: #999;
219 | text-align: center;
220 | }
221 |
222 |
223 | .msg {
224 | position: relative;
225 | font-size: 12px;
226 | margin: 10px 0;
227 | }
228 |
229 | .msg .msg-user {
230 | position: absolute;
231 | }
232 |
233 | .msg .msg-user img {
234 | width: 30px;
235 | height: 30px;
236 | border-radius: 50%;
237 | }
238 |
239 | .msg .msg-text .content {
240 | margin-top: 5px;
241 | padding: 2px 7px;
242 | background-color: #f2f2f2;
243 | border-radius: 3px;
244 | }
245 |
246 | .msg .msg-text .name {
247 | color: #01aaed;
248 | line-height: normal;
249 | }
250 |
251 | .msg-other .msg-text {
252 | padding-right: 10px;
253 | }
254 |
255 | .msg-other {
256 | padding-left: 40px;
257 | }
258 |
259 | .msg-other .msg-user {
260 | left: 0;
261 | }
262 |
263 | .msg-mine {
264 | padding-right: 50px;
265 | }
266 |
267 | .msg-mine .msg-user {
268 | right: 10px;
269 | }
270 |
271 | .msg-mine .msg-text .name {
272 | text-align: right;
273 | }
274 |
275 | @media(max-width:767px) {
276 | }
277 |
278 | @media (max-width: 991px) {
279 | .right-fixed {
280 | display: none;
281 | }
282 | }
283 |
284 | @media (min-width: 992px) {
285 | .right-fixed {
286 | position: fixed;
287 | width: 303px;
288 | }
289 |
290 | .chatroom .scroll {
291 | width: 313px;
292 | }
293 | }
294 |
295 | @media (min-width: 1200px) {
296 | .right-fixed {
297 | width: 370px;
298 | }
299 |
300 | .chatroom .scroll {
301 | width: 380px;
302 | }
303 | }
304 |
--------------------------------------------------------------------------------
/res/css/prettify.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/css/prettify.css
--------------------------------------------------------------------------------
/res/css/site-animate.css:
--------------------------------------------------------------------------------
1 | /* 动画定义
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:32:57
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:32:57
6 | */
7 |
8 | /*左侧导航In动画*/
9 | @keyframes leftIn {
10 | from {
11 | left: -200px;
12 | }
13 |
14 | to {
15 | left: 0;
16 | }
17 | }
18 |
19 | @-moz-keyframes leftIn {
20 | from {
21 | left: -200px;
22 | }
23 |
24 | to {
25 | left: 0;
26 | }
27 | }
28 |
29 | @-webkit-keyframes leftIn {
30 | from {
31 | left: -200px;
32 | }
33 |
34 | to {
35 | left: 0;
36 | }
37 | }
38 |
39 | /*左侧导航Out动画*/
40 | @keyframes leftOut {
41 | from {
42 | left: 0;
43 | }
44 |
45 | to {
46 | left: -200px;
47 | }
48 | }
49 |
50 | @-moz-keyframes leftOut {
51 | from {
52 | left: 0;
53 | }
54 |
55 | to {
56 | left: -200px;
57 | }
58 | }
59 |
60 | @-webkit-keyframes leftOut {
61 | from {
62 | left: 0;
63 | }
64 |
65 | to {
66 | left: -200px;
67 | }
68 | }
69 |
70 | /*分享In动画*/
71 | @keyframes shareIn {
72 | from {
73 | right: -200px;
74 | }
75 |
76 | to {
77 | right: 80px;
78 | }
79 | }
80 |
81 | @-moz-keyframes shareIn {
82 | from {
83 | right: -200px;
84 | }
85 |
86 | to {
87 | right: 80px;
88 | }
89 | }
90 |
91 | @-webkit-keyframes shareIn {
92 | from {
93 | right: -200px;
94 | }
95 |
96 | to {
97 | right: 80px;
98 | }
99 | }
100 |
101 | /*分享Out动画*/
102 | @keyframes shareOut {
103 | from {
104 | right: 80px;
105 | }
106 |
107 | to {
108 | right: -200px;
109 | }
110 | }
111 |
112 | @-moz-keyframes shareOut {
113 | from {
114 | right: 80px;
115 | }
116 |
117 | to {
118 | right: -200px;
119 | }
120 | }
121 |
122 | @-webkit-keyframes shareOut {
123 | from {
124 | right: 80px;
125 | }
126 |
127 | to {
128 | right: -200px;
129 | }
130 | }
131 |
132 | /*淡入动画*/
133 | @keyframes maskFadeIn {
134 | from {
135 | opacity: 0;
136 | }
137 |
138 | to {
139 | opacity: 1;
140 | }
141 | }
142 |
143 | @-moz-keyframes maskFadeIn {
144 | from {
145 | opacity: 0;
146 | }
147 |
148 | to {
149 | opacity: 1;
150 | }
151 | }
152 |
153 | @-webkit-keyframes maskFadeIn {
154 | from {
155 | opacity: 0;
156 | }
157 |
158 | to {
159 | opacity: 1;
160 | }
161 | }
162 |
163 | /*淡出动画*/
164 | @keyframes maskFadeOut {
165 | from {
166 | opacity: 1;
167 | }
168 |
169 | to {
170 | opacity: 0;
171 | }
172 | }
173 |
174 | @-moz-keyframes maskFadeOut {
175 | from {
176 | opacity: 1;
177 | }
178 |
179 | to {
180 | opacity: 0;
181 | }
182 | }
183 |
184 | @-webkit-keyframes maskFadeOut {
185 | from {
186 | opacity: 1;
187 | }
188 |
189 | to {
190 | opacity: 0;
191 | }
192 | }
193 |
--------------------------------------------------------------------------------
/res/css/site-media.css:
--------------------------------------------------------------------------------
1 | /* 媒体查询
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:33:13
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:33:13
6 | */
7 |
8 | /* 超小屏幕(手机,小于 768px) */
9 | @media(max-width:767px) {
10 | .shadow {
11 | -moz-box-shadow: none;
12 | -webkit-box-shadow: none;
13 | box-shadow: none;
14 | }
15 |
16 | .left-box {
17 | margin-bottom: 10px;
18 | }
19 |
20 | .home-tips {
21 | border-bottom: 1px solid #ddd;
22 | border-top: 1px solid #ddd;
23 | margin-bottom: -7.5px;
24 | margin-top: -2.5px;
25 | font-size: 12px;
26 | padding: 5px 10px;
27 | }
28 |
29 | .blog-body > .layui-container {
30 | padding-top: 10px;
31 | }
32 |
33 | .article {
34 | padding: 10px;
35 | }
36 |
37 | .article .article-title {
38 | margin-bottom: 5px;
39 | text-overflow: ellipsis;
40 | white-space: nowrap;
41 | overflow: hidden;
42 | }
43 |
44 | .article > .article-right {
45 | width: 72%;
46 | float: right;
47 | padding-left: 3%;
48 | }
49 |
50 | .article > .article-right > .article-abstract {
51 | font-size: 12px;
52 | color: #666;
53 | height: 32px;
54 | overflow: hidden;
55 | text-overflow: ellipsis;
56 | }
57 |
58 | .blogerinfo {
59 | margin-bottom: 10px;
60 | }
61 |
62 | .blogerinfo-info {
63 | float: none;
64 | text-align: center;
65 | }
66 |
67 | .blogerinfo-figure {
68 | display: inline-block;
69 | float: none;
70 | }
71 |
72 | .article-tool {
73 | text-align: center;
74 | }
75 |
76 |
77 | .error {
78 | min-height: 57vh;
79 | }
80 |
81 | .error h1 .layui-icon {
82 | line-height: 200px;
83 | font-size: 200px;
84 | }
85 |
86 | .banner li p {
87 | font-size: 13px;
88 | }
89 | }
90 |
91 | /* 小屏幕(平板,大于等于 768px) */
92 | @media (min-width: 768px) {
93 | .layui-container {
94 | padding: 0 15px;
95 | }
96 |
97 | .layui-hide-xs {
98 | /*display: initial !important;*/
99 | }
100 |
101 | .sitemap {
102 | background: #fff;
103 | padding: 6px 15px;
104 | line-height: normal;
105 | font-size: 13px;
106 | }
107 |
108 | .sitemap a {
109 | font-size: 13px;
110 | }
111 |
112 | .icon-stick {
113 | font-size: 14px;
114 | }
115 |
116 | .blog-banner li {
117 | font-size: 38px;
118 | }
119 |
120 | .left-box {
121 | margin-bottom: 15px;
122 | }
123 |
124 | .article .article-title {
125 | margin-bottom: 7px;
126 | }
127 |
128 | .article .article-title a {
129 | font-size: 17px;
130 | }
131 |
132 | .article > .article-right > .article-abstract {
133 | font-size: 14px;
134 | display: block;
135 | height: 79px;
136 | word-break: break-word;
137 | overflow: hidden;
138 | line-height: 21px;
139 | }
140 |
141 | .article .article-footer {
142 | font-size: 13px;
143 | margin-top: 3px;
144 | }
145 |
146 | .article .article-footer .article-viewinfo {
147 | display: inline;
148 | }
149 |
150 |
151 | /*文章分类导航*/
152 | .article-category {
153 | font-size: 13px;
154 | width: 260px !important;
155 | }
156 |
157 | .article-category > .blog-card-title {
158 | text-align: start;
159 | }
160 |
161 | .article-category > a {
162 | padding: 7px 1%;
163 | margin: 5px 0;
164 | width: 46%;
165 | }
166 |
167 | .article-category > a:nth-child(odd) {
168 | float: right;
169 | }
170 |
171 | .article-category > a:nth-child(even) {
172 | float: left;
173 | }
174 |
175 | @keyframes categoryIn {
176 | from {
177 | right: -280px;
178 | }
179 |
180 | to {
181 | right: 0;
182 | }
183 | }
184 |
185 | @-moz-keyframes categoryIn {
186 | from {
187 | right: -280px;
188 | }
189 |
190 | to {
191 | right: 0;
192 | }
193 | }
194 |
195 | @-webkit-keyframes categoryIn {
196 | from {
197 | right: -280px;
198 | }
199 |
200 | to {
201 | right: 0;
202 | }
203 | }
204 |
205 | @keyframes categoryOut {
206 | from {
207 | right: 0;
208 | }
209 |
210 | to {
211 | right: -280px;
212 | }
213 | }
214 |
215 | @-moz-keyframes categoryOut {
216 | from {
217 | right: 0;
218 | }
219 |
220 | to {
221 | right: -280px;
222 | }
223 | }
224 |
225 | @-webkit-keyframes categoryOut {
226 | from {
227 | right: 0;
228 | }
229 |
230 | to {
231 | right: -280px;
232 | }
233 | }
234 | /*文章分类导航End*/
235 | .error {
236 | min-height: 73vh;
237 | }
238 |
239 | .error h1 .layui-icon {
240 | line-height: 500px;
241 | font-size: 400px;
242 | }
243 | }
244 |
245 | /* 中等屏幕(桌面显示器,大于等于 992px) */
246 | @media (min-width: 992px) {
247 | .sitemap {
248 | background: #fff;
249 | padding: 8px 15px;
250 | line-height: normal;
251 | font-size: 14px;
252 | }
253 |
254 | .sitemap a {
255 | font-size: 14px;
256 | }
257 |
258 | .icon-stick {
259 | font-size: 15px;
260 | }
261 |
262 | .category-toggle {
263 | display: none;
264 | }
265 |
266 | .blog-nav .blog-nav-list {
267 | display: block;
268 | }
269 |
270 | .blog-nav .blog-user {
271 | right: 0;
272 | line-height: 50px;
273 | }
274 |
275 | .blog-nav .blog-navicon {
276 | display: none;
277 | }
278 |
279 | .blog-nav .blog-logo {
280 | position: absolute;
281 | left: 0;
282 | width: auto;
283 | }
284 |
285 | .blog-nav .layui-nav {
286 | display: block;
287 | }
288 |
289 | .blog-nav-left {
290 | display: none !important;
291 | }
292 |
293 | .blog-mask {
294 | display: none;
295 | }
296 |
297 | .blog-banner li {
298 | font-size: 48px;
299 | }
300 |
301 |
302 | .blog-card {
303 | width: auto;
304 | float: none !important;
305 | }
306 |
307 | .article .article-title a {
308 | font-size: 19px;
309 | }
310 |
311 | .article > .article-right > .article-abstract {
312 | height: 58px;
313 | line-height: 19px;
314 | font-size: 13px;
315 | }
316 |
317 | /*文章分类导航*/
318 | .article-category {
319 | display: block;
320 | position: static;
321 | background: #fff;
322 | color: #333;
323 | width: auto !important;
324 | font-size: 14px;
325 | }
326 |
327 | .article-category a {
328 | background: inherit;
329 | border: 1px solid #d2d2d2;
330 | color: #444;
331 | }
332 |
333 | .article-category a:hover {
334 | border: 1px solid #5FB878;
335 | background: inherit;
336 | color: #5FB878;
337 | }
338 | /*文章分类导航End*/
339 |
340 | .error {
341 | min-height: 85vh;
342 | }
343 | }
344 |
345 | /* 大屏幕(大桌面显示器,大于等于 1200px) */
346 | @media (min-width: 1200px) {
347 | .blog-banner li {
348 | font-size: 58px;
349 | }
350 |
351 | .article > .article-right > .article-abstract {
352 | height: 79px;
353 | line-height: 21px;
354 | }
355 |
356 | .article .article-title {
357 | margin-bottom: 10px;
358 | }
359 | }
360 |
361 | @media(max-width:992px) {
362 | .padding0 {
363 | padding: 0;
364 | }
365 | }
366 |
--------------------------------------------------------------------------------
/res/images/Leo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/Leo.jpg
--------------------------------------------------------------------------------
/res/images/about_bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/about_bg1.jpg
--------------------------------------------------------------------------------
/res/images/about_bg2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/about_bg2.jpg
--------------------------------------------------------------------------------
/res/images/about_bg3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/about_bg3.jpg
--------------------------------------------------------------------------------
/res/images/about_bg4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/about_bg4.jpg
--------------------------------------------------------------------------------
/res/images/ali_reward.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/ali_reward.jpg
--------------------------------------------------------------------------------
/res/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/bg.png
--------------------------------------------------------------------------------
/res/images/bg3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/bg3.png
--------------------------------------------------------------------------------
/res/images/bg5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/bg5.png
--------------------------------------------------------------------------------
/res/images/carousel/blog2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/carousel/blog2.png
--------------------------------------------------------------------------------
/res/images/carousel/carousel_001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/carousel/carousel_001.png
--------------------------------------------------------------------------------
/res/images/cd-icon-location.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
--------------------------------------------------------------------------------
/res/images/cd-icon-movie.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
--------------------------------------------------------------------------------
/res/images/cd-icon-picture.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
--------------------------------------------------------------------------------
/res/images/cover/201705102148110621.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/cover/201705102148110621.jpg
--------------------------------------------------------------------------------
/res/images/cover/201708252044567037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/cover/201708252044567037.jpg
--------------------------------------------------------------------------------
/res/images/global/Logo_100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/Logo_100.png
--------------------------------------------------------------------------------
/res/images/global/Logo_40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/Logo_40.png
--------------------------------------------------------------------------------
/res/images/global/Logo_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/Logo_64.png
--------------------------------------------------------------------------------
/res/images/global/handshake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/handshake.png
--------------------------------------------------------------------------------
/res/images/global/liuyan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/liuyan.png
--------------------------------------------------------------------------------
/res/images/global/messagewall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/messagewall.png
--------------------------------------------------------------------------------
/res/images/global/pinglun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/pinglun.png
--------------------------------------------------------------------------------
/res/images/global/qq_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/qq_32.png
--------------------------------------------------------------------------------
/res/images/global/qzone_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/qzone_32.png
--------------------------------------------------------------------------------
/res/images/global/reword.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/reword.jpg
--------------------------------------------------------------------------------
/res/images/global/wechat_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/wechat_32.png
--------------------------------------------------------------------------------
/res/images/global/weibo_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/weibo_32.png
--------------------------------------------------------------------------------
/res/images/global/xitong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/global/xitong.png
--------------------------------------------------------------------------------
/res/images/messagewall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/messagewall.png
--------------------------------------------------------------------------------
/res/images/prd.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/prd.jpg
--------------------------------------------------------------------------------
/res/images/wx_reward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/images/wx_reward.png
--------------------------------------------------------------------------------
/res/js/blocksit.js:
--------------------------------------------------------------------------------
1 | layui.use('jquery', function () {
2 | (function ($) {
3 |
4 | //BlocksIt default options
5 | var blocksOptions = {
6 | numOfCol: 5,
7 | offsetX: 5,
8 | offsetY: 5,
9 | blockElement: 'div'
10 | };
11 |
12 | //dynamic variable
13 | var container, colwidth;
14 | var blockarr = [];
15 |
16 | //ie indexOf fix
17 | if (!Array.prototype.indexOf) {
18 | Array.prototype.indexOf = function (elt /*, from*/) {
19 | var len = this.length >>> 0;
20 |
21 | var from = Number(arguments[1]) || 0;
22 | from = (from < 0) ? Math.ceil(from) : Math.floor(from);
23 | if (from < 0)
24 | from += len;
25 |
26 | for (; from < len; from++) {
27 | if (from in this &&
28 | this[from] === elt)
29 | return from;
30 | }
31 | return -1;
32 | };
33 | }
34 |
35 | //create empty blockarr
36 | var createEmptyBlockarr = function () {
37 | //empty blockarr
38 | blockarr = [];
39 | for (var i = 0; i < blocksOptions.numOfCol; i++) {
40 | blockarrPush('empty-' + i, i, 0, 1, -blocksOptions.offsetY);
41 | }
42 | }
43 |
44 | //add new block to blockarr
45 | var blockarrPush = function (id, x, y, width, height) {
46 | //define block object based on block width
47 | for (var i = 0; i < width; i++) {
48 | var block = new Object();
49 | block.x = x + i;
50 | block.size = width;
51 | block.endY = y + height + blocksOptions.offsetY * 2;
52 |
53 | blockarr.push(block);
54 | }
55 | }
56 |
57 | //remove block from blockarr
58 | var blockarrRemove = function (x, num) {
59 | for (var i = 0; i < num; i++) {
60 | //remove block beside
61 | var index = getBlockIndex(x + i, 'x');
62 | blockarr.splice(index, 1);
63 | }
64 | }
65 |
66 | //retrieve block index based on block's x position
67 | var getBlockIndex = function (value, type) {
68 |
69 | for (var i = 0; i < blockarr.length; i++) {
70 | var obj = blockarr[i];
71 | if (type == "x" && obj.x == value) {
72 | return i;
73 | } else if (type == "endY" && obj.endY == value) {
74 | return i;
75 | }
76 | }
77 | }
78 |
79 | //get height from blockarr range based on block.x and size
80 | //retrun min and max height
81 | var getHeightArr = function (x, size) {
82 | var temparr = [];
83 | for (var i = 0; i < size; i++) {
84 | temparr.push(blockarr[getBlockIndex(x + i, 'x')].endY);
85 | }
86 | var min = Math.min.apply(Math, temparr);
87 | var max = Math.max.apply(Math, temparr);
88 |
89 | return [min, max, temparr.indexOf(min)];
90 | }
91 |
92 | //get block x and y position
93 | var getBlockPostion = function (size) {
94 |
95 | //if block width is not default 1
96 | //extra algorithm check
97 | if (size > 1) {
98 | //prevent extra loop
99 | var arrlimit = blockarr.length - size;
100 | //define temp variable
101 | var defined = false;
102 | var tempHeight, tempIndex;
103 |
104 | for (var i = 0; i < blockarr.length; i++) {
105 | var obj = blockarr[i];
106 | var x = obj.x;
107 |
108 | //check for block within range only
109 | if (x >= 0 && x <= arrlimit) {
110 | var heightarr = getHeightArr(x, size);
111 |
112 | //get shortest group blocks
113 | if (!defined) {
114 | defined = true;
115 | tempHeight = heightarr;
116 | tempIndex = x;
117 | } else {
118 | if (heightarr[1] < tempHeight[1]) {
119 | tempHeight = heightarr;
120 | tempIndex = x;
121 | }
122 | }
123 | }
124 | }
125 | return [tempIndex, tempHeight[1]];
126 | } else { //simple check for block with width 1
127 | tempHeight = getHeightArr(0, blockarr.length);
128 | return [tempHeight[2], tempHeight[0]];
129 | }
130 | }
131 |
132 | //set block position
133 | var setPosition = function (obj, index) {
134 | //check block size
135 | if (!obj.data('size') || obj.data('size') < 0) {
136 | obj.data('size', 1);
137 | } else if (obj.data('size') > blocksOptions.numOfCol) {
138 | obj.data('size', blocksOptions.numOfCol);
139 | }
140 |
141 | //define block data
142 | var pos = getBlockPostion(obj.data('size'));
143 | var blockWidth = colwidth * obj.data('size') - (obj.outerWidth() - obj.width());
144 |
145 | //update style first before get object height
146 | obj.css({
147 | 'width': blockWidth - blocksOptions.offsetX * 2,
148 | 'left': pos[0] * colwidth,
149 | 'top': pos[1],
150 | 'position': 'absolute'
151 | });
152 |
153 | var blockHeight = obj.outerHeight();
154 |
155 | //modify blockarr for new block
156 | blockarrRemove(pos[0], obj.data('size'));
157 | blockarrPush(obj.attr('id'), pos[0], pos[1], obj.data('size'), blockHeight);
158 | }
159 |
160 | $.fn.BlocksIt = function (options) {
161 | //BlocksIt options
162 | if (options && typeof options === 'object') {
163 | $.extend(blocksOptions, options);
164 | }
165 |
166 | container = $(this);
167 | colwidth = container.width() / blocksOptions.numOfCol;
168 |
169 | //create empty blockarr
170 | createEmptyBlockarr();
171 |
172 | container.children(blocksOptions.blockElement).each(function (e) {
173 | setPosition($(this), e);
174 | });
175 |
176 | //set final height of container
177 | var heightarr = getHeightArr(0, blockarr.length);
178 | container.height(heightarr[1] + blocksOptions.offsetY);
179 |
180 | return this;
181 | }
182 |
183 | })(layui.jquery);
184 | });
185 |
186 |
187 |
188 |
189 |
190 |
--------------------------------------------------------------------------------
/res/js/comment.js:
--------------------------------------------------------------------------------
1 | /* 留言页js 留言提交代码在site.js
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:35:08
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:35:28
6 | */
7 | layui.use(['flow', 'laytpl'], function () {
8 | var $ = layui.$,
9 | flow = layui.flow,
10 | laytpl = layui.laytpl;
11 |
12 | $('.comment-item').on('mouseover', function () {
13 | $(this).find('.reply').addClass('layui-show');
14 | }).on('mouseout', function () {
15 | $(this).find('.reply').removeClass('layui-show');
16 | });
17 |
18 | $('.comment-reply').on('mouseover', function () {
19 | $(this).find('.createtime a').show();
20 | }).on('mouseout', function () {
21 | $(this).find('.createtime a').hide();
22 | });
23 |
24 | $('.blog-body').on('click', function (e) {
25 | //移除回复编辑器
26 | $('#commentReplyEritor').remove();
27 | $('.comment-item').find('.btnDiv,.layui-layedit').remove();
28 | });
29 |
30 | $('.comment-item').find('.btnDiv,.layui-layedit,.createtime a,.reply').click(function (e) {
31 | layui.stope(e);
32 | });
33 |
34 | //流加载(从服务器加载Json,不利于SEO,建议换种方式)
35 | flow.load({
36 | elem: '.commentlist',
37 | isAuto: true,
38 | end: '没有更多了',
39 | mb: 200,
40 | done: function (page, next) { //到达临界点(默认滚动触发),触发下一页
41 | var pages, pageSize = 10;
42 | var lis = [];
43 | if (page == 1) {
44 | next(lis.join(''), page < 999999);
45 | return;
46 | }
47 | $.ajax({
48 | type: 'get',
49 | url: '/api/comment/getcommentsbypage',
50 | data: {
51 | pageIndex: page,
52 | pageSize: pageSize
53 | },
54 | success: function (res) {
55 | if (res.code === 1) {
56 | var tpl = commentTpl.innerHTML;
57 | laytpl(tpl).render(res.data, function (html) {
58 | lis.push(html);
59 | });
60 | pages = (res.count + pageSize - 1) / pageSize;
61 | next(lis.join(''), page < pages);
62 |
63 | //绑定事件
64 | sr.reveal('.sr-bottom', {
65 | scale: 1,
66 | opacity: .1,
67 | distance: '60px',
68 | duration: 1000
69 | });
70 |
71 | $('.comment-item').off('mouseover').on('mouseover', function () {
72 | $(this).find('.reply').addClass('layui-show');
73 | }).off('mouseout').on('mouseout', function () {
74 | $(this).find('.reply').removeClass('layui-show');
75 | });
76 |
77 | $('.comment-reply').off('mouseover').on('mouseover', function () {
78 | $(this).find('.createtime a').show();
79 | }).off('mouseout').on('mouseout', function () {
80 | $(this).find('.createtime a').hide();
81 | });
82 | $('.byflow').find('*[blog-event]').on('click', function () {
83 | var eventName = $(this).attr('blog-event');
84 | typeof blog.events[eventName] == 'function' && blog.events[eventName].call(this);
85 | }).removeClass('byflow');
86 | $('.comment-item').find('.btnDiv,.layui-layedit,.createtime a,.reply').click(function (e) {
87 | layui.stope(e);
88 | });
89 | } else {
90 | layer.msg('获取数据失败', {
91 | icon: 2,
92 | shift: 6
93 | });
94 | }
95 | },
96 | error: function (e) {
97 | layer.msg('获取数据失败', {
98 | icon: 2,
99 | shift: 6
100 | });
101 | }
102 | });
103 | }
104 | });
105 |
106 | });
107 |
108 |
109 |
110 |
111 | //聊天代码
112 | layui.use(['jquery', 'layedit', 'laytpl'], function ($, layedit, laytpl) {
113 | var $chatbody = $('.chatroom-body'),
114 | chatEditor = layedit.build('chateditor', {
115 | tool: ['face', 'image'],
116 | height: '70'
117 | }),
118 | systemMsg = function (text) {
119 | return '' + text + '
';
120 | },
121 | resetChatEditor = function () {
122 | //移除原有编辑器
123 | $('.chatroom-editor').html('');
124 | //新建编辑器
125 | chatEditor = layedit.build('chateditor', {
126 | tool: ['face', 'image'],
127 | height: '70'
128 | });
129 | };
130 |
131 | var events = {
132 | //聊天室发送按钮点击
133 | chatsend: function () {
134 | var content = layedit.getContent(chatEditor);
135 | if (content == '') {
136 | $chatbody.append(systemMsg('至少输入一个字吧!'));
137 | msg_end.scrollIntoView(false);
138 | return;
139 | }
140 | var data = {
141 | msg: content,
142 | userAvatar: '../res/images/Leo.jpg',
143 | userName: 'Leo',
144 | class: 'msg-mine'
145 | };
146 | laytpl(chatMsgTpl.innerHTML).render(data, function (html) {
147 | $chatbody.append(html);
148 | msg_end.scrollIntoView(false);
149 | });
150 | //重置编辑器
151 | resetChatEditor();
152 | }
153 | };
154 |
155 | //单击事件绑定
156 | $('*[comment-event]').on('click', function () {
157 | var eventName = $(this).attr('comment-event');
158 | typeof events[eventName] == 'function' && events[eventName].call(this);
159 | });
160 |
161 | $(function () {
162 | //在线状态切换
163 | $('.chatroom .layui-card-header .status').on('click', function (e) {
164 | var html = statusSelHtml.innerHTML,
165 | self = this;
166 | layer.open({
167 | offset: [e.clientY + 20, e.clientX - 20],
168 | type: 1,
169 | shade: 0.1,
170 | shadeClose: true,
171 | title: false,
172 | closeBtn: 0,
173 | content: html,
174 | success: function (layero, index) {
175 | $(layero).find('li').click(function () {
176 | var status = $(this).data('status');
177 | if (status === 'offline') {
178 | //断开连接
179 | $(self).removeClass('online').attr('title', '离线');
180 | $('.chatroom .layui-card-header .onlineCount').remove();
181 | } else if (status === 'online') {
182 | //连接聊天服务器
183 | var connectLoading = layer.msg('连接聊天服务器中...', {
184 | icon: 16
185 | });
186 | layer.close(connectLoading);
187 | $(self).addClass('online').attr('title', '在线');
188 | $chatbody.append('成功连接聊天室
');
189 | msg_end.scrollIntoView(false);
190 | }
191 | layer.close(index);
192 | });
193 | }
194 | });
195 | });
196 | });
197 | });
--------------------------------------------------------------------------------
/res/js/homepage.js:
--------------------------------------------------------------------------------
1 | /* 首页js
2 | * @Author: Leo
3 | * @Date: 2019-10-09 11:35:45
4 | * @Last Modified by: Leo
5 | * @Last Modified time: 2019-10-09 11:35:45
6 | */
7 | layui.config({
8 | base: '../res/js/'
9 | }).use('unslider', function () {
10 | var $ = window.jQuery = layui.jquery
11 | , slider = $('.banner').unslider({
12 | autoplay: true //是否自动轮播,默认:false
13 | , speed: 800 // 播放速度,单位毫秒 默认750
14 | , delay: 3500 // 每张图片滑动的间隔时间,单位毫秒 默认3000
15 | , index: 'first' //起始下标,整数 或者 'first'、'last' 默认first
16 | , keys: true //是否开启键盘控制,true,false,或者一个option/keycode对象。 默认ture
17 | //, keys: {
18 | // prev: 37, //←
19 | // next: 39, //→
20 | // stop: 27 //ESC
21 | //}
22 | //, arrows: true //箭头 true,false,或者一个option/keycode对象。 默认ture
23 | , arrows: {
24 | prev: ''
25 | , next: ''
26 | //,stop: ''
27 | //,start: 'Play'
28 | }
29 | , animation: 'horizontal' //动画方式 'horizontal','vertical','fade' 默认:'horizontal'
30 | , selectors: {
31 | container: 'ul:first',
32 | slides: 'li'
33 | }
34 | , animateHegiht: true
35 | , activeClass: 'unslider-active'
36 | , infinite: true
37 | , noloop: false
38 | })
39 | , sliderInvoke = slider.data('unslider');
40 | $('.banner').css('width', '');
41 | //鼠标悬浮显示指针,停止轮播
42 | $('.banner,.unslider-arrow').on('mouseover', function (e) {
43 | layui.stope(e);
44 | $('.unslider-arrow').show();
45 | sliderInvoke.stop();
46 | }).on('mouseout', function (e) {
47 | layui.stope(e);
48 | $('.unslider-arrow').hide();
49 | sliderInvoke.start();
50 | });
51 |
52 | //鼠标按住轮播手动控制滑动
53 | //静态页面存在跨域问题,请部署到服务器使用
54 | var scripts = [
55 | '../res/lib/jquery.event.move.js',
56 | '../res/lib/jquery.event.swipe.js'
57 | ];
58 | $.getScript(scripts[0]);
59 | $.getScript(scripts[1], function () {
60 | sliderInvoke.initSwipe();
61 | });
62 | });
63 |
64 | layui.use(['jquery', 'util'], function (carousel) {
65 | var $ = layui.jquery
66 | , util = layui.util
67 | , device = layui.device();
68 |
69 | var serverTime = new Date();
70 | var startTime = new Date(2018, 2, 3); //开始时间 js月份从0开始;
71 |
72 | $(function () {
73 | playAnnouncement();
74 | playRunTimeStr(startTime, serverTime, '.bloginfo-runtime');
75 | });
76 |
77 | function showRunTime(startTime, serverTime, selecter) {
78 | var date3 = serverTime.getTime() - startTime.getTime() //时间差的毫秒数
79 |
80 | //计算出相差天数
81 | var days = Math.floor(date3 / (24 * 3600 * 1000))
82 |
83 | //计算出小时数
84 |
85 | var leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
86 | var hours = Math.floor(leave1 / (3600 * 1000))
87 | //计算相差分钟数
88 | var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
89 | var minutes = Math.floor(leave2 / (60 * 1000))
90 | //计算相差秒数
91 | var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
92 | var seconds = Math.round(leave3 / 1000);
93 |
94 | var str = '博客已运行' + util.digit(days, 2) + '天' + util.digit(hours, 2) + '时' + util.digit(minutes, 2) + '分' + util.digit(seconds, 2) + '秒';
95 | $(selecter).html(str);
96 | }
97 |
98 | function playRunTimeStr(startTime, serverTime, selecter) {
99 | showRunTime(startTime, serverTime, selecter);
100 | setInterval(function () {
101 | showRunTime(startTime, serverTime, selecter);
102 | serverTime = new Date(serverTime.getTime() + 1000 * 1);
103 | }, 1000);
104 | }
105 |
106 | //播放公告
107 | function playAnnouncement() {
108 | var index = 0;
109 | var $announcement = $('.home-tips-container>span');
110 | //自动轮换
111 | setInterval(function () {
112 | index++; //下标更新
113 | if (index >= $announcement.length) {
114 | index = 0;
115 | }
116 | $announcement.eq(index).stop(true, true).fadeIn().siblings('span').fadeOut(); //下标对应的图片显示,同辈元素隐藏
117 | }, 3000);
118 | }
119 | });
--------------------------------------------------------------------------------
/res/js/jquery.nav.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery One Page Nav Plugin
3 | * http://github.com/davist11/jQuery-One-Page-Nav
4 | *
5 | * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
6 | * Dual licensed under the MIT and GPL licenses.
7 | * Uses the same license as jQuery, see:
8 | * http://jquery.org/license
9 | *
10 | * @version 3.0.0
11 | *
12 | * Example usage:
13 | * $('#nav').onePageNav({
14 | * currentClass: 'current',
15 | * changeHash: false,
16 | * scrollSpeed: 750
17 | * });
18 | */
19 | layui.use('jquery', function () {
20 | var jQuery = layui.$;
21 |
22 | ; (function ($, window, document, undefined) {
23 |
24 | // our plugin constructor
25 | var OnePageNav = function (elem, options) {
26 | this.elem = elem;
27 | this.$elem = $(elem);
28 | this.options = options;
29 | this.metadata = this.$elem.data('plugin-options');
30 | this.$win = $(window);
31 | this.sections = {};
32 | this.didScroll = false;
33 | this.$doc = $(document);
34 | this.docHeight = this.$doc.height();
35 | };
36 |
37 | // the plugin prototype
38 | OnePageNav.prototype = {
39 | defaults: {
40 | navItems: 'a',
41 | currentClass: 'current',
42 | changeHash: false,
43 | easing: 'swing',
44 | filter: '',
45 | scrollSpeed: 750,
46 | scrollThreshold: 0.5,
47 | begin: false,
48 | end: false,
49 | scrollChange: false
50 | },
51 |
52 | init: function () {
53 | // Introduce defaults that can be extended either
54 | // globally or using an object literal.
55 | this.config = $.extend({}, this.defaults, this.options, this.metadata);
56 |
57 | this.$nav = this.$elem.find(this.config.navItems);
58 |
59 | //Filter any links out of the nav
60 | if (this.config.filter !== '') {
61 | this.$nav = this.$nav.filter(this.config.filter);
62 | }
63 |
64 | //Handle clicks on the nav
65 | this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
66 |
67 | //Get the section positions
68 | this.getPositions();
69 |
70 | //Handle scroll changes
71 | this.bindInterval();
72 |
73 | //Update the positions on resize too
74 | this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
75 |
76 | return this;
77 | },
78 |
79 | adjustNav: function (self, $parent) {
80 | self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
81 | $parent.addClass(self.config.currentClass);
82 | },
83 |
84 | bindInterval: function () {
85 | var self = this;
86 | var docHeight;
87 |
88 | self.$win.on('scroll.onePageNav', function () {
89 | self.didScroll = true;
90 | });
91 |
92 | self.t = setInterval(function () {
93 | docHeight = self.$doc.height();
94 |
95 | //If it was scrolled
96 | if (self.didScroll) {
97 | self.didScroll = false;
98 | self.scrollChange();
99 | }
100 |
101 | //If the document height changes
102 | if (docHeight !== self.docHeight) {
103 | self.docHeight = docHeight;
104 | self.getPositions();
105 | }
106 | }, 250);
107 | },
108 |
109 | getHash: function ($link) {
110 | return $link.attr('href').split('#')[1];
111 | },
112 |
113 | getPositions: function () {
114 | var self = this;
115 | var linkHref;
116 | var topPos;
117 | var $target;
118 |
119 | self.$nav.each(function () {
120 | linkHref = self.getHash($(this));
121 | $target = $('#' + linkHref);
122 |
123 | if ($target.length) {
124 | topPos = $target.offset().top;
125 | self.sections[linkHref] = Math.round(topPos);
126 | }
127 | });
128 | },
129 |
130 | getSection: function (windowPos) {
131 | var returnValue = null;
132 | var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
133 |
134 | for (var section in this.sections) {
135 | if ((this.sections[section] - windowHeight) < windowPos) {
136 | returnValue = section;
137 | }
138 | }
139 |
140 | return returnValue;
141 | },
142 |
143 | handleClick: function (e) {
144 | var self = this;
145 | var $link = $(e.currentTarget);
146 | var $parent = $link.parent();
147 | var newLoc = '#' + self.getHash($link);
148 |
149 | if (!$parent.hasClass(self.config.currentClass)) {
150 | //Start callback
151 | if (self.config.begin) {
152 | self.config.begin();
153 | }
154 |
155 | //Change the highlighted nav item
156 | self.adjustNav(self, $parent);
157 |
158 | //Removing the auto-adjust on scroll
159 | self.unbindInterval();
160 |
161 | //Scroll to the correct position
162 | self.scrollTo(newLoc, function () {
163 | //Do we need to change the hash?
164 | if (self.config.changeHash) {
165 | window.location.hash = newLoc;
166 | }
167 |
168 | //Add the auto-adjust on scroll back in
169 | self.bindInterval();
170 |
171 | //End callback
172 | if (self.config.end) {
173 | self.config.end();
174 | }
175 | });
176 | }
177 |
178 | e.preventDefault();
179 | },
180 |
181 | scrollChange: function () {
182 | var windowTop = this.$win.scrollTop();
183 | var position = this.getSection(windowTop);
184 | var $parent;
185 |
186 | //If the position is set
187 | if (position !== null) {
188 | $parent = this.$elem.find('a[href$="#' + position + '"]').parent();
189 |
190 | //If it's not already the current section
191 | if (!$parent.hasClass(this.config.currentClass)) {
192 | //Change the highlighted nav item
193 | this.adjustNav(this, $parent);
194 |
195 | //If there is a scrollChange callback
196 | if (this.config.scrollChange) {
197 | this.config.scrollChange($parent);
198 | }
199 | }
200 | }
201 | },
202 |
203 | scrollTo: function (target, callback) {
204 | var offset = $(target).offset().top;
205 |
206 | $('html, body').animate({
207 | scrollTop: offset
208 | }, this.config.scrollSpeed, this.config.easing, callback);
209 | },
210 |
211 | unbindInterval: function () {
212 | clearInterval(this.t);
213 | this.$win.unbind('scroll.onePageNav');
214 | }
215 | };
216 |
217 | OnePageNav.defaults = OnePageNav.prototype.defaults;
218 |
219 | $.fn.onePageNav = function (options) {
220 | return this.each(function () {
221 | new OnePageNav(this, options).init();
222 | });
223 | };
224 |
225 | })(jQuery, window, document);
226 |
227 | });
--------------------------------------------------------------------------------
/res/js/unslider.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/js/unslider.js
--------------------------------------------------------------------------------
/res/lib/font-awesome/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/res/lib/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/res/lib/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/res/lib/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/res/lib/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/res/lib/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/res/lib/jquery.event.swipe.js:
--------------------------------------------------------------------------------
1 | // jQuery.event.swipe
2 | // 0.5
3 | // Stephen Band
4 |
5 | // Dependencies
6 | // jQuery.event.move 1.2
7 |
8 | // One of swipeleft, swiperight, swipeup or swipedown is triggered on
9 | // moveend, when the move has covered a threshold ratio of the dimension
10 | // of the target node, or has gone really fast. Threshold and velocity
11 | // sensitivity changed with:
12 | //
13 | // jQuery.event.special.swipe.settings.threshold
14 | // jQuery.event.special.swipe.settings.sensitivity
15 |
16 | (function (module) {
17 | if (typeof define === 'function' && define.amd) {
18 | // AMD. Register as an anonymous module.
19 | define(['jquery'], module);
20 | } else {
21 | // Browser globals
22 | module(jQuery);
23 | }
24 | })(function(jQuery, undefined){
25 | var add = jQuery.event.add,
26 |
27 | remove = jQuery.event.remove,
28 |
29 | // Just sugar, so we can have arguments in the same order as
30 | // add and remove.
31 | trigger = function(node, type, data) {
32 | jQuery.event.trigger(type, data, node);
33 | },
34 |
35 | settings = {
36 | // Ratio of distance over target finger must travel to be
37 | // considered a swipe.
38 | threshold: 0.4,
39 | // Faster fingers can travel shorter distances to be considered
40 | // swipes. 'sensitivity' controls how much. Bigger is shorter.
41 | sensitivity: 6
42 | };
43 |
44 | function moveend(e) {
45 | var w, h, event;
46 |
47 | w = e.target.offsetWidth;
48 | h = e.target.offsetHeight;
49 |
50 | // Copy over some useful properties from the move event
51 | event = {
52 | distX: e.distX,
53 | distY: e.distY,
54 | velocityX: e.velocityX,
55 | velocityY: e.velocityY,
56 | finger: e.finger
57 | };
58 |
59 | // Find out which of the four directions was swiped
60 | if (e.distX > e.distY) {
61 | if (e.distX > -e.distY) {
62 | if (e.distX/w > settings.threshold || e.velocityX * e.distX/w * settings.sensitivity > 1) {
63 | event.type = 'swiperight';
64 | trigger(e.currentTarget, event);
65 | }
66 | }
67 | else {
68 | if (-e.distY/h > settings.threshold || e.velocityY * e.distY/w * settings.sensitivity > 1) {
69 | event.type = 'swipeup';
70 | trigger(e.currentTarget, event);
71 | }
72 | }
73 | }
74 | else {
75 | if (e.distX > -e.distY) {
76 | if (e.distY/h > settings.threshold || e.velocityY * e.distY/w * settings.sensitivity > 1) {
77 | event.type = 'swipedown';
78 | trigger(e.currentTarget, event);
79 | }
80 | }
81 | else {
82 | if (-e.distX/w > settings.threshold || e.velocityX * e.distX/w * settings.sensitivity > 1) {
83 | event.type = 'swipeleft';
84 | trigger(e.currentTarget, event);
85 | }
86 | }
87 | }
88 | }
89 |
90 | function getData(node) {
91 | var data = jQuery.data(node, 'event_swipe');
92 |
93 | if (!data) {
94 | data = { count: 0 };
95 | jQuery.data(node, 'event_swipe', data);
96 | }
97 |
98 | return data;
99 | }
100 |
101 | jQuery.event.special.swipe =
102 | jQuery.event.special.swipeleft =
103 | jQuery.event.special.swiperight =
104 | jQuery.event.special.swipeup =
105 | jQuery.event.special.swipedown = {
106 | setup: function( data, namespaces, eventHandle ) {
107 | var data = getData(this);
108 |
109 | // If another swipe event is already setup, don't setup again.
110 | if (data.count++ > 0) { return; }
111 |
112 | add(this, 'moveend', moveend);
113 |
114 | return true;
115 | },
116 |
117 | teardown: function() {
118 | var data = getData(this);
119 |
120 | // If another swipe event is still setup, don't teardown.
121 | if (--data.count > 0) { return; }
122 |
123 | remove(this, 'moveend', moveend);
124 |
125 | return true;
126 | },
127 |
128 | settings: settings
129 | };
130 | });
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/code.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/laydate/default/laydate.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/html/chatlog.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 聊天记录
9 |
10 |
11 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
33 |
34 |
38 |
39 |
40 |
41 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/html/find.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 发现
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
此为自定义的【查找】页面,因需求不一,所以官方暂不提供该模版结构与样式,实际使用时,可移至该文件到你的项目中,对页面自行把控。
19 |
文件所在目录(相对于layui.js):/css/modules/layim/html/find.html
20 |
21 |
22 |
23 |
24 |
25 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/html/getmsg.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0,
3 | "pages": 1,
4 | "data": [
5 | {
6 | "id": 76,
7 | "content": "申请添加你为好友",
8 | "uid": 168,
9 | "from": 166488,
10 | "from_group": 0,
11 | "type": 1,
12 | "remark": "有问题要问",
13 | "href": null,
14 | "read": 1,
15 | "time": "刚刚",
16 | "user": {
17 | "id": 166488,
18 | "avatar": "http://q.qlogo.cn/qqapp/101235792/B704597964F9BD0DB648292D1B09F7E8/100",
19 | "username": "李彦宏",
20 | "sign": null
21 | }
22 | },
23 | {
24 | "id": 75,
25 | "content": "申请添加你为好友",
26 | "uid": 168,
27 | "from": 347592,
28 | "from_group": 0,
29 | "type": 1,
30 | "remark": "你好啊!",
31 | "href": null,
32 | "read": 1,
33 | "time": "刚刚",
34 | "user": {
35 | "id": 347592,
36 | "avatar": "http://q.qlogo.cn/qqapp/101235792/B78751375E0531675B1272AD994BA875/100",
37 | "username": "麻花疼",
38 | "sign": null
39 | }
40 | },
41 | {
42 | "id": 62,
43 | "content": "雷军 拒绝了你的好友申请",
44 | "uid": 168,
45 | "from": null,
46 | "from_group": null,
47 | "type": 1,
48 | "remark": null,
49 | "href": null,
50 | "read": 1,
51 | "time": "10天前",
52 | "user": {
53 | "id": null
54 | }
55 | },
56 | {
57 | "id": 60,
58 | "content": "马小云 已经同意你的好友申请",
59 | "uid": 168,
60 | "from": null,
61 | "from_group": null,
62 | "type": 1,
63 | "remark": null,
64 | "href": null,
65 | "read": 1,
66 | "time": "10天前",
67 | "user": {
68 | "id": null
69 | }
70 | },
71 | {
72 | "id": 61,
73 | "content": "贤心 已经同意你的好友申请",
74 | "uid": 168,
75 | "from": null,
76 | "from_group": null,
77 | "type": 1,
78 | "remark": null,
79 | "href": null,
80 | "read": 1,
81 | "time": "10天前",
82 | "user": {
83 | "id": null
84 | }
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/html/msgbox.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 消息盒子
9 |
10 |
11 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
注意:这些都是模拟数据,实际使用时,需将其中的模拟接口改为你的项目真实接口。
32 |
该模版文件所在目录(相对于layui.js):/css/modules/layim/html/msgbox.html
33 |
34 |
35 |
62 |
63 |
66 |
67 |
68 |
69 |
207 |
208 |
209 |
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/mobile/layim.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.45 MIT License By http://www.layui.com */
2 | .layim-tab-content li h5,.layui-layim-list li{border-bottom:1px solid #f2f2f2;cursor:pointer}html #layuicss-skinlayim-mobilecss{display:none;position:absolute;width:1989px}.layim-tab-content li h5 *,.layui-layim-skin li,.layui-layim-tab li,.layui-layim-tool li{display:inline-block;vertical-align:top;*zoom:1;*display:inline}.layim-tab-content li h5 span,.layui-layim-list li p,.layui-layim-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-layim-tab{position:absolute;bottom:0;left:0;right:0;height:50px;border-top:1px solid #f2f2f2;background-color:#fff}.layui-layim-tab li{position:relative;width:33.33%;height:50px;text-align:center;color:#666;color:rgba(0,0,0,.6);cursor:pointer}.layui-layim-tab li .layui-icon{position:relative;top:7px;font-size:25px}.layui-layim-tab li span{position:relative;bottom:-3px;display:block;font-size:12px}.layui-layim-tab li[lay-type=more] .layui-icon{top:4px;font-size:22px}.layui-layim-tab li.layim-this{color:#3FDD86}.layim-new{display:none;position:absolute;top:5px;left:50%;margin-left:15px;width:10px;height:10px;border-radius:10px;background-color:#F74C31;color:#fff}.layim-list-top .layim-new{position:relative;vertical-align:top;top:10px;left:initial;margin-left:5px}.layim-list-top i.layui-show{display:inline-block!important}.layim-tab-content,.layim-tab-content li ul{display:none}.layui-layim{position:fixed;left:0;right:0;top:50px;bottom:50px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.layim-tab-content li h5{position:relative;padding-left:35px;height:45px;line-height:45px;font-size:0;white-space:nowrap;overflow:hidden}.layim-tab-content li h5 *{font-size:17px}.layim-tab-content li h5 span{max-width:80%}.layim-tab-content li h5 i{position:absolute;left:12px;top:0;color:#C9BDBB}.layim-tab-content li h5 em{padding-left:5px;color:#999}.layim-list-friend,.layim-list-group{background-color:#fff}.layui-layim-list li{position:relative;height:42px;padding:5px 15px 5px 60px;font-size:0}.layui-layim-list li:active{background-color:#F2F2F2;background-color:rgba(0,0,0,.05)}.layui-layim-list li.layim-null{height:20px;line-height:20px;padding:10px 0;color:#999;text-align:center;cursor:default;font-size:14px}.layim-list-history li.layim-null{padding:30px 0;border-bottom:none;background-color:#eee}.layui-layim-list li *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:17px}.layui-layim-list li span{margin-top:2px;max-width:155px;font-size:17px}.layui-layim-list li img{position:absolute;left:12px;top:8px;width:36px;height:36px;border-radius:100%}.layui-layim-list li p{display:block;padding-right:30px;line-height:18px;font-size:13px;color:#999}.layui-layim-list li .layim-msg-status{display:none;position:absolute;right:10px;bottom:7px;padding:0 5px;height:17px;line-height:17px;border-radius:17px;text-align:center;font-size:10px;background-color:#F74C31;color:#fff}.layim-list-gray{-webkit-filter:grayscale(100%);-ms-filter:grayscale(100%);filter:grayscale(100%);filter:gray}.layim-list-top{background-color:#fff;font-size:17px}.layim-list-top li{position:relative;padding:0 15px 0 50px;line-height:45px;border-bottom:1px solid #f2f2f2;cursor:pointer}.layim-list-top li:last-child{margin-bottom:10px;border-bottom:none}.layim-list-top li .layui-icon{position:absolute;left:12px;top:0;margin-right:10px;color:#36373C;font-size:24px}.layim-list-top li[layim-event=newFriend] .layui-icon{left:15px}.layim-panel,.layim-title{position:fixed;left:0;right:0;top:0}.layim-list-top li[layim-event=group] .layui-icon{font-size:20px}.layim-list-top li[layim-event=about] .layui-icon{font-size:25px}.layim-panel{bottom:0;background-color:#eee;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layim-title{height:50px;line-height:50px;padding:0 15px;background-color:#36373C;color:#fff;font-size:18px}.layim-chat-status{padding-left:15px;font-size:14px;opacity:.7}.layim-title .layim-chat-back{display:inline-block;vertical-align:middle;position:relative;padding:0 15px;margin-left:-10px;top:0;font-size:24px;cursor:pointer}.layim-chat-detail{position:absolute;right:0;top:0;padding:0 15px;font-size:18px;cursor:pointer}.layim-chat-main,.layim-content{position:fixed;top:50px;left:0;right:0;overflow-y:auto;overflow-x:hidden}.layim-chat-detail:active,.layim-title .layim-chat-back:active{opacity:.8}.layui-layim .layim-title{text-align:left}.layui-layim .layim-title p{padding:0 15px}.layim-content{bottom:0}.layim-chat-main{width:100%;bottom:85px;padding:15px;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layim-chat-main ul{overflow-x:hidden}.layim-chat-main ul li{position:relative;font-size:0;margin-bottom:10px;padding-left:60px;min-height:68px}.layim-chat-text,.layim-chat-user{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:15px}.layim-chat-user{position:absolute;left:3px}.layim-chat-user img{width:40px;height:40px;border-radius:100%}.layim-chat-user cite{position:absolute;left:60px;top:-2px;width:500px;line-height:24px;font-size:12px;white-space:nowrap;color:#999;text-align:left;font-style:normal}.layim-chat-user cite i{padding-left:15px;font-style:normal}.layim-chat-text{position:relative;min-height:22px;line-height:22px;margin-top:25px;padding:8px 15px;background-color:#fff;border-radius:3px;color:#333;word-break:break-all}.layim-chat-text:after{content:'';position:absolute;left:-10px;top:13px;width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;border-width:10px}.layim-chat-text a{color:#33DF83}.layim-chat-text img{max-width:100%;vertical-align:middle}.layim-chat-text .layui-layim-file,.layui-layim-file{display:block;text-align:center}.layim-chat-text .layui-layim-file{color:#333}.layui-layim-file:active{opacity:.9}.layui-layim-file i{font-size:80px;line-height:80px}.layui-layim-file cite{display:block;line-height:20px;font-size:17px}.layui-layim-audio{text-align:center;cursor:pointer}.layui-layim-audio .layui-icon{position:relative;top:5px;font-size:24px}.layui-layim-audio p{margin-top:3px}.layui-layim-video{width:120px;height:80px;line-height:80px;background-color:#333;text-align:center;border-radius:3px}.layui-layim-video .layui-icon{font-size:36px;cursor:pointer;color:#fff}.layim-chat-main ul .layim-chat-mine{text-align:right;padding-left:0;padding-right:60px}.layim-chat-mine .layim-chat-user{left:auto;right:3px}.layim-chat-mine .layim-chat-user cite{left:auto;right:60px;text-align:right}.layim-chat-mine .layim-chat-user cite i{padding-left:0;padding-right:15px}.layim-chat-mine .layim-chat-text{margin-left:0;text-align:left;background-color:#5FB878;color:#fff}.layim-chat-mine .layim-chat-text:after{left:auto;right:-10px;border-top-color:#5FB878}.layim-chat-mine .layim-chat-text a{color:#fff}.layim-chat-main ul .layim-chat-system{min-height:0;margin:20px 0 5px;padding:0}.layim-chat-system{margin:10px 0;text-align:center}.layim-chat-system span{display:inline-block;line-height:30px;padding:0 15px;border-radius:3px;background-color:#ddd;color:#fff;font-size:14px;cursor:pointer}.layim-chat-footer{position:fixed;bottom:0;left:10px;right:10px;height:80px}.layim-chat-send{display:-webkit-box;display:-webkit-flex;display:flex}.layim-chat-send input{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;padding-left:5px;border:0;background-color:#fff;border-radius:3px}.layim-chat-send button{border-radius:3px;height:40px;padding:0 20px;border:0;margin-left:10px;background-color:#5FB878;color:#fff}.layim-chat-tool{position:relative;width:100%;overflow-x:auto;padding:0;height:38px;line-height:38px;margin-top:3px;font-size:0;white-space:nowrap}.layim-chat-tool span{position:relative;margin:0 15px;display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:28px;cursor:pointer}.layim-chat-tool .layim-tool-log{position:absolute;right:5px;font-size:14px}.layim-tool-log i{position:relative;top:2px;margin-right:5px;font-size:20px;color:#999}.layim-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layim-layer{position:fixed;bottom:85px;left:10px;right:10px;margin:0 auto}.layui-layim-face{position:relative;max-height:180px;overflow:auto;padding:10px;font-size:0}.layui-layim-face li{cursor:pointer;display:inline-block;vertical-align:bottom;padding:5px 2px;text-align:center;width:10%;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-layim-face li img{width:22px;height:22px}.layim-about{font-size:17px}.layim-about .layui-m-layercont{text-align:left}.layim-about .layui-m-layercont p{line-height:30px}.layim-about .layui-m-layercont a{color:#01AAED}
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/1.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/2.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/3.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/4.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/5.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/skin/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/skin/logo.jpg
--------------------------------------------------------------------------------
/res/lib/layui/css/modules/layim/voice/default.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/css/modules/layim/voice/default.mp3
--------------------------------------------------------------------------------
/res/lib/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/res/lib/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/res/lib/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/res/lib/layui/images/face/0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/0.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/1.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/10.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/11.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/12.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/13.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/14.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/15.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/16.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/17.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/18.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/19.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/2.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/20.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/21.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/22.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/23.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/24.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/25.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/26.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/27.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/28.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/29.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/3.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/30.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/31.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/32.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/33.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/34.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/35.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/36.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/37.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/38.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/39.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/4.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/40.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/41.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/42.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/43.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/44.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/45.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/46.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/47.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/48.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/49.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/5.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/50.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/51.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/52.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/53.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/54.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/55.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/56.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/57.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/58.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/59.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/6.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/60.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/61.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/62.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/63.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/64.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/65.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/66.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/67.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/68.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/69.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/7.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/70.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/71.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/8.gif
--------------------------------------------------------------------------------
/res/lib/layui/images/face/9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Leo0216/Blog2/a415d68f114710d2faa7c3e878852fec0b486d1e/res/lib/layui/images/face/9.gif
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/carousel.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/element.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(i){"use strict";var t=layui.$,a=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(i){var a=this;return t.extend(!0,a.config,i),a},s.prototype.on=function(i,t){return layui.onevent.call(this,e,i,t)},s.prototype.tabAdd=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),c=''+(a.title||"unnaming")+"";return s[0]?s.before(c):n.append(c),o.append(''+(a.content||"")+"
"),y.hideTabMore(!0),y.tabAuto(),this},s.prototype.tabDelete=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return y.tabDelete(null,s),this},s.prototype.tabChange=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return y.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(i){i=i||{},v.on("click",i.headerElem,function(a){var e=t(this).index();y.tabClick.call(this,a,e,null,i)})},s.prototype.progress=function(i,a){var e="layui-progress",l=t("."+e+"[lay-filter="+i+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",a),s.text(a),this};var o=".layui-nav",c="layui-nav-item",r="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",h="layui-nav-more",f="layui-anim layui-anim-upbit",y={tabClick:function(i,a,s,o){o=o||{};var c=s||t(this),a=a||c.parent().children("li").index(c),r=o.headerElem?c.parent():c.parents(".layui-tab").eq(0),u=o.bodyElem?t(o.bodyElem):r.children(".layui-tab-content").children(".layui-tab-item"),d=c.find("a"),h=r.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(c.addClass(l).siblings().removeClass(l),u.eq(a).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+h+")",{elem:r,index:a})},tabDelete:function(i,a){var n=a||t(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),c=o.children(".layui-tab-content").children(".layui-tab-item"),r=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?y.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&y.tabClick.call(n.prev()[0],null,s-1)),n.remove(),c.eq(s).remove(),setTimeout(function(){y.tabAuto()},50),layui.event.call(this,e,"tabDelete("+r+")",{elem:o,index:s})},tabAuto:function(){var i="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;t(".layui-tab").each(function(){var s=t(this),o=s.children(".layui-tab-title"),c=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),r=t('');if(n===window&&8!=a.ie&&y.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var i=t(this);if(!i.find("."+l)[0]){var a=t('ဆ');a.on("click",y.tabDelete),i.append(a)}}),o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(r),s.attr("overflow",""),r.on("click",function(t){o[this.title?"removeClass":"addClass"](i),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(i){var a=t(".layui-tab-title");i!==!0&&"tabmore"===t(i.target).attr("lay-stope")||(a.removeClass("layui-tab-more"),a.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter"),s=i.find("a"),c="string"==typeof i.attr("lay-unselect");i.find("."+d)[0]||("javascript:;"!==s.attr("href")&&"_blank"===s.attr("target")||c||(a.find("."+l).removeClass(l),i.addClass(l)),layui.event.call(this,e,"nav("+n+")",i))},clickChild:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i)},showChild:function(){var i=t(this),a=i.parents(o),e=i.parent(),l=i.siblings("."+d);a.hasClass(u)&&(l.removeClass(f),e["none"===l.css("display")?"addClass":"removeClass"](c+"ed"))},collapse:function(){var i=t(this),a=i.find(".layui-colla-icon"),l=i.siblings(".layui-colla-content"),s=i.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),c="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var r=s.children(".layui-colla-item").children("."+n);r.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),r.removeClass(n)}l[c?"addClass":"removeClass"](n),a.html(c?"":""),layui.event.call(this,e,"collapse("+o+")",{title:i,content:l,show:c})}};s.prototype.init=function(i,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){y.tabAuto.call({})},nav:function(){var i=200,e={},s={},p={},v=function(l,o,c){var r=t(this),y=r.find("."+d);o.hasClass(u)?l.css({top:r.position().top,height:r.children("a").height(),opacity:1}):(y.addClass(f),l.css({left:r.position().left+parseFloat(r.css("marginLeft")),top:r.position().top+r.height()-l.height()}),e[c]=setTimeout(function(){l.css({width:r.width(),opacity:1})},a.ie&&a.ie<10?0:i),clearTimeout(p[c]),"block"===y.css("display")&&clearTimeout(s[c]),s[c]=setTimeout(function(){y.addClass(n),r.find("."+h).addClass(h+"d")},300))};t(o+l).each(function(a){var l=t(this),o=t(''),f=l.find("."+c);l.find("."+r)[0]||(l.append(o),f.on("mouseenter",function(){v.call(this,o,l,a)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[a]),s[a]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+h).removeClass(h+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[a]),p[a]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},i)})),f.each(function(){var i=t(this),a=i.find("."+d);if(a[0]&&!i.find("."+h)[0]){var e=i.children("a");e.append('')}i.off("click",y.clickThis).on("click",y.clickThis),i.children("a").off("click",y.showChild).on("click",y.showChild),a.children("dd").off("click",y.clickChild).on("click",y.clickChild)})})},breadcrumb:function(){var i=".layui-breadcrumb";t(i+l).each(function(){var i=t(this),a="lay-separator",e=i.attr(a)||"/",l=i.find("a");l.next("span["+a+"]")[0]||(l.each(function(i){i!==l.length-1&&t(this).after(""+e+"")}),i.css("visibility","visible"))})},progress:function(){var i="layui-progress";t("."+i+l).each(function(){var a=t(this),e=a.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),a.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var i="layui-collapse";t("."+i+l).each(function(){var i=t(this).find(".layui-colla-item");i.each(function(){var i=t(this),a=i.find(".layui-colla-title"),e=i.find(".layui-colla-content"),l="none"===e.css("display");a.find(".layui-colla-icon").remove(),a.append(''+(l?"":"")+""),a.off("click",y.collapse).on("click",y.collapse)})})}};return s[i]?s[i]():layui.each(s,function(i,t){t()})},s.prototype.render=s.prototype.init;var p=new s,v=t(document);p.render();var b=".layui-tab-title li";v.on("click",b,y.tabClick),v.on("click",y.hideTabMore),t(window).on("resize",y.tabAuto),i(e,p)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/form.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",u="layui-disabled",c=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};c.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},c.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},c.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},c.prototype.render=function(e,i){var n=this,c=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=c.find("select"),y=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},h=function(i,c,f){var h=t(this),p=i.find("."+n),m=p.find("input"),k=i.find("dl"),g=k.children("dd");if(!c){var x=function(){var e=i.offset().top+i.outerHeight()+5-v.scrollTop(),t=k.outerHeight();i.addClass(a+"ed"),g.removeClass(o),e+t>v.height()&&e>=t&&i.addClass(a+"up")},b=function(e){i.removeClass(a+"ed "+a+"up"),m.blur(),e||C(m.val(),function(e){e&&(d=k.find("."+s).html(),m&&m.val(d))})};p.on("click",function(e){i.hasClass(a+"ed")?b():(y(e,!0),x()),k.find("."+r).remove()}),p.find(".layui-edge").on("click",function(){m.focus()}),m.on("keyup",function(e){var t=e.keyCode;9===t&&x()}).on("keydown",function(e){var t=e.keyCode;9===t?b():13===t&&e.preventDefault()});var C=function(e,i,a){var n=0;layui.each(g,function(){var i=t(this),l=i.text(),r=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:r)&&n++,"keyup"===a&&i[r?"addClass":"removeClass"](o)});var l=n===g.length;return i(l),l},w=function(e){var t=this.value,i=e.keyCode;return 9!==i&&13!==i&&37!==i&&38!==i&&39!==i&&40!==i&&(C(t,function(e){e?k.find("."+r)[0]||k.append('无匹配项
'):k.find("."+r).remove()},"keyup"),void(""===t&&k.find("."+r).remove()))};f&&m.on("keyup",w).on("blur",function(t){e=m,d=k.find("."+s).html(),setTimeout(function(){C(m.val(),function(e){d||m.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=h.attr("lay-filter");return!e.hasClass(u)&&(e.hasClass("layui-select-tips")?m.val(""):(m.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),h.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:h[0],value:a,othis:i}),b(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",y).on("click",y)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),c=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),y=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var v="string"==typeof r.attr("lay-search"),p=y?y.value?i:y.innerHTML||i:i,m=t(['','
','
','
'+function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("- "+a.label+"
"):t.push('- '+a.innerHTML+"
"):t.push('- '+(a.innerHTML||i)+"
")}),0===t.length&&t.push('- 没有选项
'),t.join("")}(r.find("*"))+"
","
"].join(""));o[0]&&o.remove(),r.after(m),h.call(this,m,c,v)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=c.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var c=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+c[0]),f=t(['',{_switch:""+((n.checked?s[0]:s[1])||"")+""}[r]||(n.title.replace(/\s/g,"")?""+n.title+"":"")+''+(r?"":"")+"","
"].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,c)})},radio:function(){var e="layui-form-radio",i=["",""],a=c.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,u=n.parents(r),c=n.attr("lay-filter"),d=u.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+c+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var c=t(['','
'+i[l.checked?0:1]+"","
"+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
","
"].join(""));r.after(c),n.call(this,c)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",u={},c=e.parents(r),d=c.find("*[lay-verify]"),y=e.parents("form")[0],v=c.find("input,select,textarea"),h=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),u=r.attr("lay-verify").split("|"),c=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(u,function(e,t){var u,f="",y="function"==typeof a[t];if(a[t]){var u=y?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],u)return"tips"===c?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===c?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(v,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(u[t.name]=t.value)}}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:u})},f=new c,y=t(document),v=t(window);f.render(),y.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),y.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/laypage.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('…');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/tree.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o(''),s=o(["",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),""].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o(''));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/upload.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap(''),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i(''),a=i(['"].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(f)||(e.elemFile.wrap(a),t.elem.next("."+f).append(function(){var e=[];return layui.each(t.data,function(i,t){e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){r.append(e,i)}),i.ajax({url:l.url,type:l.method,data:r,contentType:!1,processData:!1,dataType:"json",success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files}},y=function(){return"choose"===t?l.choose&&l.choose(g):(l.before&&l.before(g),a.ie?a.ie>9?u():c():void u())};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?Math.floor(t)+(t%1>0?t.toFixed(1):0)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after(''+o+"")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});
--------------------------------------------------------------------------------
/res/lib/layui/lay/modules/util.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.5 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,o,a="layui-fixbar",r="layui-fixbar-top",n=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],g=t(['',e.bar1?'- '+c[0]+"
":"",e.bar2?'- '+c[1]+"
":"",'- '+c[2]+"
","
"].join("")),s=g.find("."+r),u=function(){var t=n.scrollTop();t>=e.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&g.css(e.css),l.append(g),u(),g.find("li").on("click",function(){var i=t(this),o=i.attr("lay-type");"top"===o&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,o)}),n.on("scroll",function(){clearTimeout(o),o=setTimeout(function(){u()},100)}))},countdown:function(e,t,i){var o=this,a="function"==typeof t,r=new Date(e).getTime(),n=new Date(!t||a?(new Date).getTime():t).getTime(),l=r-n,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var g=setTimeout(function(){o.countdown(e,n+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,g),l<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,o=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>6912e5?(a=new Date(e),o[0][0]=i.digit(a.getFullYear(),4),o[0][1]=i.digit(a.getMonth()+1),o[0][2]=i.digit(a.getDate()),t||(o[1][0]=i.digit(a.getHours()),o[1][1]=i.digit(a.getMinutes()),o[1][2]=i.digit(a.getSeconds())),o[0].join("-")+" "+o[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var o=e.length;o0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void(n.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(n.modules[f])!function g(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void("string"==typeof n.modules[f]&&n.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":n.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[f]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(n.href=e=e.replace(/^#\//,""),e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r li {
14 | float: left;
15 | }
16 | }
17 |
18 | // Vertical sliders don't float left
19 | &-vertical {
20 | > ul {
21 | height: 100%;
22 | }
23 |
24 | li {
25 | float: none;
26 | width: 100%;
27 | }
28 | }
29 |
30 | // Fading needs everything to appear on top of
31 | // each other
32 | &-fade {
33 | position: relative;
34 |
35 | .unslider-wrap li {
36 | position: absolute;
37 | left: 0;
38 | top: 0;
39 | right: 0;
40 | z-index: 8;
41 |
42 | &.unslider-active {
43 | z-index: 10;
44 | }
45 | }
46 | }
47 |
48 | ul, ol, li {
49 | list-style: none;
50 |
51 | /* Reset any weird spacing */
52 | margin: 0;
53 | padding: 0;
54 |
55 | border: none;
56 | }
57 |
58 | &-arrow {
59 | position: absolute;
60 | left: 20px;
61 | z-index: 2;
62 |
63 | cursor: pointer;
64 |
65 | &.next {
66 | left: auto;
67 | right: 20px;
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/res/lib/unslider/less/variables.less:
--------------------------------------------------------------------------------
1 | /**
2 | * Default variables
3 | *
4 | * While these can be set with JavaScript, it's probably
5 | * better and faster to just set them here, compile to
6 | * CSS and include that instead to use some of that
7 | * hardware-accelerated goodness.
8 | */
9 |
10 | // Unslider 2 has navigation styles pre-designed. You can turn it on or off here. Default is off (false).
11 | @unslider-dot-navigation: false;
12 | @unslider-dot-colour: #fff;
13 |
14 | // Unslider 2 has navigation styles pre-designed. You can turn it off here.
15 | @unslider-transition-function: cubic-bezier(.42,0,.58,1);
16 |
--------------------------------------------------------------------------------
/res/lib/unslider/scss/unslider.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Here's where everything gets included. You don't need
3 | * to change anything here, and doing so might break
4 | * stuff. Here be dragons and all that.
5 | */
6 | /**
7 | * Default variables
8 | *
9 | * While these can be set with JavaScript, it's probably
10 | * better and faster to just set them here, compile to
11 | * CSS and include that instead to use some of that
12 | * hardware-accelerated goodness.
13 | */
14 | .unslider {
15 | overflow: auto;
16 | margin: 0;
17 | padding: 0;
18 | }
19 | .unslider-wrap {
20 | position: relative;
21 | }
22 | .unslider-wrap.unslider-carousel > li {
23 | float: left;
24 | }
25 | .unslider-vertical > ul {
26 | height: 100%;
27 | }
28 | .unslider-vertical li {
29 | float: none;
30 | width: 100%;
31 | }
32 | .unslider-fade {
33 | position: relative;
34 | }
35 | .unslider-fade .unslider-wrap li {
36 | position: absolute;
37 | left: 0;
38 | top: 0;
39 | right: 0;
40 | z-index: 8;
41 | }
42 | .unslider-fade .unslider-wrap li.unslider-active {
43 | z-index: 10;
44 | }
45 | .unslider ul, .unslider ol, .unslider li {
46 | list-style: none;
47 | /* Reset any weird spacing */
48 | margin: 0;
49 | padding: 0;
50 | border: none;
51 | }
52 | .unslider-arrow {
53 | position: absolute;
54 | left: 20px;
55 | z-index: 2;
56 | cursor: pointer;
57 | }
58 | .unslider-arrow.next {
59 | left: auto;
60 | right: 20px;
61 | }
62 |
63 | .unslider-nav ol {
64 | list-style: none;
65 | text-align: center;
66 | }
67 | .unslider-nav ol li {
68 | display: inline-block;
69 | width: 6px;
70 | height: 6px;
71 | margin: 0 4px;
72 | background: transparent;
73 | border-radius: 5px;
74 | overflow: hidden;
75 | text-indent: -999em;
76 | border: 2px solid #fff;
77 | cursor: pointer;
78 | }
79 | .unslider-nav ol li.unslider-active {
80 | background: #fff;
81 | cursor: default;
82 | }
83 |
--------------------------------------------------------------------------------
/res/lib/unslider/scss/unslider.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Here's where everything gets included. You don't need
3 | * to change anything here, and doing so might break
4 | * stuff. Here be dragons and all that.
5 | */
6 | @import 'variables';
7 | @import 'unslider/reset';
8 | @import 'unslider/dots';
--------------------------------------------------------------------------------
/res/lib/unslider/scss/unslider/dots.scss:
--------------------------------------------------------------------------------
1 | @if($unslider-dot-navigation){
2 | .#{$unslider-namespace}-nav, %#{$unslider-namespace}-nav {
3 | ol {
4 | list-style: none;
5 | text-align: center;
6 |
7 | li {
8 | display: inline-block;
9 | width: 6px;
10 | height: 6px;
11 | margin: 0 4px;
12 |
13 | background: transparent;
14 | border-radius: 5px;
15 |
16 | overflow: hidden;
17 | text-indent: -999em;
18 |
19 | border: 2px solid $unslider-dot-colour;
20 |
21 | cursor: pointer;
22 |
23 | &.unslider-active {
24 | background: $unslider-dot-colour;
25 | cursor: default;
26 | }
27 | }
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/res/lib/unslider/scss/unslider/reset.scss:
--------------------------------------------------------------------------------
1 | .#{$unslider-namespace}, %#{$unslider-namespace} {
2 | // Should either be relative or absolute
3 | // as long as it's not static, but we'll
4 | // set it using jQuery
5 | // position: relative;
6 | overflow: auto;
7 | margin: 0;
8 | padding: 0;
9 |
10 | &-wrap {
11 | position: relative;
12 |
13 | &.unslider-carousel > li {
14 | float: left;
15 | }
16 | }
17 |
18 | // Vertical sliders don't float left
19 | &-vertical {
20 | > ul {
21 | height: 100%;
22 | }
23 |
24 | li {
25 | float: none;
26 | width: 100%;
27 | }
28 | }
29 |
30 | // Fading needs everything to appear on top of
31 | // each other
32 | &-fade {
33 | position: relative;
34 |
35 | .unslider-wrap li {
36 | position: absolute;
37 | left: 0;
38 | top: 0;
39 | right: 0;
40 | z-index: 8;
41 |
42 | &.unslider-active {
43 | z-index: 10;
44 | }
45 | }
46 | }
47 |
48 | ul, ol, li {
49 | list-style: none;
50 |
51 | /* Reset any weird spacing */
52 | margin: 0;
53 | padding: 0;
54 |
55 | border: none;
56 | }
57 |
58 | &-arrow {
59 | position: absolute;
60 | left: 20px;
61 | z-index: 2;
62 |
63 | cursor: pointer;
64 |
65 | &.next {
66 | left: auto;
67 | right: 20px;
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/res/lib/unslider/scss/variables.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Default variables
3 | *
4 | * While these can be set with JavaScript, it's probably
5 | * better and faster to just set them here, compile to
6 | * CSS and include that instead to use some of that
7 | * hardware-accelerated goodness.
8 | */
9 |
10 | // Unslider 2 has navigation styles pre-designed. You can turn it on or off here. Default is off (false).
11 | $unslider-dot-navigation: false;
12 | $unslider-dot-colour: #fff;
13 |
14 | // Unslider 2 has navigation styles pre-designed. You can turn it off here.
15 | $unslider-transition-function: cubic-bezier(.42,0,.58,1);
16 |
17 | // Set a namespace for Unslider
18 | $unslider-namespace: 'unslider';
19 |
--------------------------------------------------------------------------------