@eternalheart/ngx-file-preview
Version:
A powerful Angular file preview component library supporting multiple file formats including images, videos, PDFs, Office documents, text files and more.
831 lines (731 loc) • 29.6 kB
HTML
<html>
<head>
<meta charset="utf-8"/>
<title>nfp Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="nfp.css">
<script src="nfp.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.nfp.cn/" title="nfp 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.nfp.cn/manage/index?manage_type=myprojects&projectId=4798386" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">origin-size</div>
<div class="code-name">&#xe72b;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">auto-fit</div>
<div class="code-name">&#xe6a0;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">plus</div>
<div class="code-name">&#xe643;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">delete</div>
<div class="code-name">&#xe610;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">music</div>
<div class="code-name">&#xe600;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">nowrap</div>
<div class="code-name">&#xe868;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">wrap</div>
<div class="code-name">&#xe7eb;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">下载</div>
<div class="code-name">&#xe605;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">close</div>
<div class="code-name">&#xe644;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">reset</div>
<div class="code-name">&#xe604;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">play</div>
<div class="code-name">&#xe62a;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">fast-backward</div>
<div class="code-name">&#xe62c;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">fast-forward</div>
<div class="code-name">&#xe62d;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">mute</div>
<div class="code-name">&#xe62e;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">volume</div>
<div class="code-name">&#xe62f;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">lightness</div>
<div class="code-name">&#xe662;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">fullscreen</div>
<div class="code-name">&#xe626;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">pause</div>
<div class="code-name">&#xe628;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">pip</div>
<div class="code-name">&#xe816;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">forward15s</div>
<div class="code-name">&#xe7bf;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">back15s</div>
<div class="code-name">&#xe7ad;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">rotate-90</div>
<div class="code-name">&#xe762;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">rotate90</div>
<div class="code-name">&#xe764;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">zoom-out</div>
<div class="code-name">&#xe645;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">zoom-in</div>
<div class="code-name">&#xe647;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">previous</div>
<div class="code-name">&#xe632;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">next</div>
<div class="code-name">&#xe633;</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW"></span>
<div class="name">slide-show</div>
<div class="code-name">&#xec83;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 nfp 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'NGX-FILE-PREVIEW';
src: url('nfp.ttf?t=1739247193388') format('truetype');
}
</code></pre>
<h3 id="-nfp-">第二步:定义使用 nfp 的样式</h3>
<pre><code class="language-css"
>.NGX-FILE-PREVIEW {
font-family: "NGX-FILE-PREVIEW" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
><span class="NGX-FILE-PREVIEW">&#x33;</span>
</code></pre>
<blockquote>
<p>"NGX-FILE-PREVIEW" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "nfp"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-origin-size"></span>
<div class="name">
origin-size
</div>
<div class="code-name">.nfp-origin-size
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-auto-fit"></span>
<div class="name">
auto-fit
</div>
<div class="code-name">.nfp-auto-fit
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-plus"></span>
<div class="name">
plus
</div>
<div class="code-name">.nfp-plus
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-delete"></span>
<div class="name">
delete
</div>
<div class="code-name">.nfp-delete
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-music"></span>
<div class="name">
music
</div>
<div class="code-name">.nfp-music
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-nowrap"></span>
<div class="name">
nowrap
</div>
<div class="code-name">.nfp-nowrap
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-wrap"></span>
<div class="name">
wrap
</div>
<div class="code-name">.nfp-wrap
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-download"></span>
<div class="name">
下载
</div>
<div class="code-name">.nfp-download
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-close"></span>
<div class="name">
close
</div>
<div class="code-name">.nfp-close
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-reset"></span>
<div class="name">
reset
</div>
<div class="code-name">.nfp-reset
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-play"></span>
<div class="name">
play
</div>
<div class="code-name">.nfp-play
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-fast-backward"></span>
<div class="name">
fast-backward
</div>
<div class="code-name">.nfp-fast-backward
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-fast-forward"></span>
<div class="name">
fast-forward
</div>
<div class="code-name">.nfp-fast-forward
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-mute"></span>
<div class="name">
mute
</div>
<div class="code-name">.nfp-mute
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-volume"></span>
<div class="name">
volume
</div>
<div class="code-name">.nfp-volume
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-lightness"></span>
<div class="name">
lightness
</div>
<div class="code-name">.nfp-lightness
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-fullscreen"></span>
<div class="name">
fullscreen
</div>
<div class="code-name">.nfp-fullscreen
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-pause"></span>
<div class="name">
pause
</div>
<div class="code-name">.nfp-pause
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-pip"></span>
<div class="name">
pip
</div>
<div class="code-name">.nfp-pip
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-forward15s"></span>
<div class="name">
forward15s
</div>
<div class="code-name">.nfp-forward15s
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-back15s"></span>
<div class="name">
back15s
</div>
<div class="code-name">.nfp-back15s
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-rotate-90"></span>
<div class="name">
rotate-90
</div>
<div class="code-name">.nfp-rotate-90
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-rotate90"></span>
<div class="name">
rotate90
</div>
<div class="code-name">.nfp-rotate90
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-zoom-out"></span>
<div class="name">
zoom-out
</div>
<div class="code-name">.nfp-zoom-out
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-zoom-in"></span>
<div class="name">
zoom-in
</div>
<div class="code-name">.nfp-zoom-in
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-previous"></span>
<div class="name">
previous
</div>
<div class="code-name">.nfp-previous
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-next"></span>
<div class="name">
next
</div>
<div class="code-name">.nfp-next
</div>
</li>
<li class="dib">
<span class="icon NGX-FILE-PREVIEW nfp-slide-show"></span>
<div class="name">
slide-show
</div>
<div class="code-name">.nfp-slide-show
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html"><link rel="stylesheet" href="./nfp.css">
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html"><span class="NGX-FILE-PREVIEW nfp-xxx"></span>
</code></pre>
<blockquote>
<p>"
NGX-FILE-PREVIEW" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "nfp"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-origin-size"></use>
</svg>
<div class="name">origin-size</div>
<div class="code-name">#nfp-origin-size</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-auto-fit"></use>
</svg>
<div class="name">auto-fit</div>
<div class="code-name">#nfp-auto-fit</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-plus"></use>
</svg>
<div class="name">plus</div>
<div class="code-name">#nfp-plus</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-delete"></use>
</svg>
<div class="name">delete</div>
<div class="code-name">#nfp-delete</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-music"></use>
</svg>
<div class="name">music</div>
<div class="code-name">#nfp-music</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-nowrap"></use>
</svg>
<div class="name">nowrap</div>
<div class="code-name">#nfp-nowrap</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-wrap"></use>
</svg>
<div class="name">wrap</div>
<div class="code-name">#nfp-wrap</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-download"></use>
</svg>
<div class="name">下载</div>
<div class="code-name">#nfp-download</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-close"></use>
</svg>
<div class="name">close</div>
<div class="code-name">#nfp-close</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-reset"></use>
</svg>
<div class="name">reset</div>
<div class="code-name">#nfp-reset</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-play"></use>
</svg>
<div class="name">play</div>
<div class="code-name">#nfp-play</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-fast-backward"></use>
</svg>
<div class="name">fast-backward</div>
<div class="code-name">#nfp-fast-backward</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-fast-forward"></use>
</svg>
<div class="name">fast-forward</div>
<div class="code-name">#nfp-fast-forward</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-mute"></use>
</svg>
<div class="name">mute</div>
<div class="code-name">#nfp-mute</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-volume"></use>
</svg>
<div class="name">volume</div>
<div class="code-name">#nfp-volume</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-lightness"></use>
</svg>
<div class="name">lightness</div>
<div class="code-name">#nfp-lightness</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-fullscreen"></use>
</svg>
<div class="name">fullscreen</div>
<div class="code-name">#nfp-fullscreen</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-pause"></use>
</svg>
<div class="name">pause</div>
<div class="code-name">#nfp-pause</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-pip"></use>
</svg>
<div class="name">pip</div>
<div class="code-name">#nfp-pip</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-forward15s"></use>
</svg>
<div class="name">forward15s</div>
<div class="code-name">#nfp-forward15s</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-back15s"></use>
</svg>
<div class="name">back15s</div>
<div class="code-name">#nfp-back15s</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-rotate-90"></use>
</svg>
<div class="name">rotate-90</div>
<div class="code-name">#nfp-rotate-90</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-rotate90"></use>
</svg>
<div class="name">rotate90</div>
<div class="code-name">#nfp-rotate90</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-zoom-out"></use>
</svg>
<div class="name">zoom-out</div>
<div class="code-name">#nfp-zoom-out</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-zoom-in"></use>
</svg>
<div class="name">zoom-in</div>
<div class="code-name">#nfp-zoom-in</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-previous"></use>
</svg>
<div class="name">previous</div>
<div class="code-name">#nfp-previous</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-next"></use>
</svg>
<div class="name">next</div>
<div class="code-name">#nfp-next</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#nfp-slide-show"></use>
</svg>
<div class="name">slide-show</div>
<div class="code-name">#nfp-slide-show</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html"><script src="./nfp.js"></script>
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html"><style>
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-xxx"></use>
</svg>
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>