sdk.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. <template>
  2. <div>
  3. <div class="content">
  4. <div class="section" style="height: calc(100vh - 80px)">
  5. <div class="banner">
  6. <div class="bg"></div>
  7. <div class="txt">
  8. <h1>SDK</h1>
  9. <h2 class="sub_title">iOS Android Mac<br />跨平台整合核心功能</h2>
  10. <div class="btns"><span class="btn-primary trail-btn" @click="handlerApplyUse('trial')">申请试用</span><span class="buy-btn" @click="handlerApplyUse('quote')">申请报价</span></div>
  11. </div>
  12. </div>
  13. </div>
  14. <div class="section">
  15. <div class="item left">
  16. <div class="discription">
  17. <div class="img">
  18. <span class="filebrowse">
  19. <img class="locker" :class="{'animation': active === 1}" src="http://cn-file.17pdf.com/website/sdk/icon_locker.png" alt="pdf阅读" />
  20. </span>
  21. </div>
  22. <div class="txt">
  23. <div class="wrap">
  24. <h2>文件阅读</h2>
  25. <p>行业领先渲染引擎,稳定流畅,迅速启动</p>
  26. </div>
  27. </div>
  28. </div>
  29. <div class="more">
  30. <em class="more_icon"></em>
  31. <div class="list">
  32. <span class="iocn filebrowse1"></span>
  33. <h3>文件浏览</h3>
  34. <p>全屏浏览或自定义页面宽度,横向连续滑动或翻页效果,保存文档并对机密文件进行加密处理</p>
  35. </div>
  36. <div class="list">
  37. <span class="iocn filebrowse2"></span>
  38. <h3>缩略图</h3>
  39. <p>改变缩略图大小,改变页码数字,取消缩略图功能,改成滑动的缩略图按钮</p>
  40. </div>
  41. <div class="list">
  42. <span class="iocn filebrowse3"></span>
  43. <h3>大纲书签</h3>
  44. <p>获取、创建及编辑大纲和书签,获取大纲参数。在大纲弹窗处可以快速进入书签和注释位置</p>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <div class="section">
  50. <div class="item right">
  51. <div class="discription">
  52. <div class="txt">
  53. <div class="wrap">
  54. <h2>文件注释</h2>
  55. <p>轻松添加、管理、分享文件注释</p>
  56. </div>
  57. </div>
  58. <div class="img">
  59. <span class="annotation">
  60. <img class="edit" :class="{'animation': active === 2}" src="http://cn-file.17pdf.com/website/sdk/icon_edit.png" alt="PDF注释工具" />
  61. <img class="remove" :class="{'animation': active === 2}" src="http://cn-file.17pdf.com/website/sdk/icon_remove.png" alt="" />
  62. </span>
  63. </div>
  64. </div>
  65. <div class="more">
  66. <em class="more_icon"></em>
  67. <div class="list">
  68. <span class="iocn annotation1"></span>
  69. <h3>注释管理</h3>
  70. <p>添加、删除、编辑、获取注释并设置注释属性</p>
  71. </div>
  72. <div class="list">
  73. <span class="iocn annotation2"></span>
  74. <h3>注释列表</h3>
  75. <p>支持文本标注(高亮、下划线等)图片注释(线条、印章等)、文本输入(打字机工具)等</p>
  76. </div>
  77. <div class="list">
  78. <span class="iocn annotation3"></span>
  79. <h3>注释导入导出</h3>
  80. <p>通过FDF文件(仅支持标记注释)导入和导出注释,轻松共享<br/>注释内容</p>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="section">
  86. <div class="item left">
  87. <div class="discription">
  88. <div class="img">
  89. <span class="dig"><img class="pen" :class="{'animation': active === 3}" src="http://cn-file.17pdf.com/website/sdk/icon_pen.png" alt="数字签名" /></span>
  90. </div>
  91. <div class="txt">
  92. <div class="wrap">
  93. <h2>签名&水印</h2>
  94. <p>让文件烙上你的专属印记</p>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="more">
  99. <em class="more_icon"></em>
  100. <div class="list">
  101. <span class="iocn dig1"></span>
  102. <h3>数字签名</h3>
  103. <p>添加和验证第三方数字签名,可添加签名域,签署文档,自定义签名的外观</p>
  104. </div>
  105. <div class="list">
  106. <span class="iocn dig2"></span>
  107. <h3>水印添加</h3>
  108. <p>新增专属文字或图片水印,自定义颜色、透明度及套用的页面范围防止内容复制,保护版权</p>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <div class="section">
  114. <div class="item right">
  115. <div class="discription">
  116. <div class="txt">
  117. <div class="wrap">
  118. <h2>文本操作</h2>
  119. <p>编辑修改PDF文本内容</p>
  120. </div>
  121. </div>
  122. <div class="img">
  123. <span class="txtedit">
  124. <img class="magnifier" :class="{'animation': active === 4}" src="http://cn-file.17pdf.com/website/sdk/icon_magnifier.png" alt="pdf文本操作" />
  125. </span>
  126. </div>
  127. </div>
  128. <div class="more">
  129. <em class="more_icon"></em>
  130. <div class="list">
  131. <span class="iocn txtedit1"></span>
  132. <h3>文本编辑</h3>
  133. <p>新增、删除、提取、选择、以及修改PDF中文字,快速检索<br/>PDF文本信息</p>
  134. </div>
  135. <div class="list">
  136. <span class="iocn txtedit2"></span>
  137. <h3>OCR</h3>
  138. <p>支持图片文字辨识,可以编辑和查找图片文字</p>
  139. </div>
  140. <div class="list">
  141. <span class="iocn txtedit3"></span>
  142. <h3>表单填写</h3>
  143. <p>填写表单空格、填入选单选项、<br/>一键清空表单内容</p>
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. <div class="section">
  149. <div class="item left">
  150. <div class="discription">
  151. <div class="img">
  152. <span class="document">
  153. <img class="rotate" :class="{'animation': active === 5}" src="http://cn-file.17pdf.com/website/sdk/icon_rotate.png" alt="文档编辑" />
  154. <img class="zoom" :class="{'animation': active === 5}" src="http://cn-file.17pdf.com/website/sdk/icon_zoom.png" />
  155. </span>
  156. </div>
  157. <div class="txt">
  158. <div class="wrap">
  159. <h2>文件编辑</h2>
  160. <p>让PDF文件自由组合</p>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="more">
  165. <em class="more_icon"></em>
  166. <div class="list">
  167. <span class="iocn document1"></span>
  168. <h3>文件编辑</h3>
  169. <p>对指定页面进行删除、旋转、移动重组等操作或提取任意页面另存为新的PDF</p>
  170. </div>
  171. <div class="list">
  172. <span class="iocn document2"></span>
  173. <h3>合并分割</h3>
  174. <p>合并不同PDF文件生成新的PDF文档或拆分单个PDF文档为多个文档</p>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. <div class="section info_wrap" :style="{height: computedH}">
  180. <div class="info">
  181. <ul>
  182. <li class="info_move" style="transform: translateY(0);opacity: 1;">便捷。</li>
  183. <li class="info_move" style="transform: translateY(100%);opacity: 0;">高效。</li>
  184. <li class="info_move" style="transform: translateY(-100%);opacity: 0;">专业。</li>
  185. </ul>
  186. <p>企业办公专业APP SDK<br/>跨平台整体核心功能<br/>让你的产品快人一步</p>
  187. </div>
  188. </div>
  189. </div>
  190. <!-- 导航 -->
  191. <ul v-show="active !== 0" class="index">
  192. <li v-for="idx in 6" :key="idx" :class="{active: active===idx}" @click="handlerToSection(idx)"></li>
  193. </ul>
  194. <client-only>
  195. <el-dialog
  196. :visible.sync="modalViable"
  197. :close-on-click-modal="true"
  198. :close-on-press-escape="false"
  199. width="480px"
  200. lock-scroll
  201. @close="resetStatus"
  202. >
  203. <sdk-form ref="sdkForm" :labelText = "labelText"></sdk-form>
  204. </el-dialog>
  205. </client-only>
  206. </div>
  207. </template>
  208. <script>
  209. import { throttle } from 'throttle-debounce';
  210. import sdkForm from '~/components/SdkForm.vue'
  211. export default {
  212. components: { sdkForm},
  213. middleware:'user',
  214. data() {
  215. return {
  216. modalViable: false,
  217. computedH: '',
  218. active: 0,
  219. labelText: ''
  220. }
  221. },
  222. head() {
  223. return {
  224. title: 'PDF文件解决方案核心功能SDK跨平台集成',
  225. meta: [
  226. {
  227. name: 'keywords',
  228. hid: 'keywords',
  229. content: 'PDF SDK,PDF library, pdf开发包,pdf kit'
  230. },
  231. {
  232. hid: 'description',
  233. name: 'description',
  234. content: '17PDF Reader提供跨平台整合PDF阅读器核心功能到你的App中, 文件阅读、文件注释、文件扫描、数字签名、水印、OCR、文本编辑、表单填写、文件合并、文件分割等各种功能集成,让你的工具更强大!'
  235. },
  236. ]
  237. }
  238. },
  239. mounted() {
  240. let num=1; let prev; let next;
  241. const infoMoves = document.querySelectorAll('.info_move')
  242. let interval = setInterval(function (){
  243. if(num > 2){num=0;}
  244. infoMoves[num].style.transform= 'translateY(0)'
  245. infoMoves[num].style.opacity= 1
  246. prev=num-1;
  247. if(prev < 0){prev=2;}
  248. infoMoves[prev].style.transform= 'translateY(-100%)'
  249. infoMoves[prev].style.opacity= 0
  250. next=num+1;
  251. if(next > 2){next=0;}
  252. infoMoves[next].style.transform= 'translateY(100%)'
  253. infoMoves[next].style.opacity= 0
  254. num++;
  255. },2000);
  256. this.$once('hook:beforeDestroy',()=> {
  257. clearInterval(interval)
  258. interval = null
  259. })
  260. this.getLastSectionH()
  261. // footer存在媒体查询, 需动态计算高度
  262. window.addEventListener('resize',throttle(200,this.getLastSectionH))
  263. window.addEventListener('scroll',throttle(200,this.handlerScroll))
  264. // 绑定鼠标滑轮滚动事件
  265. window.onmousewheel=document.onmousewheel=throttle(50,(e)=> {
  266. if(e.wheelDelta < 0 && this.active < 6) {
  267. this.handlerToSection(this.active+1,false,50)
  268. }else if(e.wheelDelta > 0 && this.active >= 0) {
  269. this.handlerToSection(this.active,true,50)
  270. }
  271. },{noLeading: true})
  272. // noLeadind<T> 代表第一次不触发函数执行,解决了鼠标滚轮事件在防抖处理后还触发两次绑定事件的问题
  273. },
  274. beforeDestroy() {
  275. if(window){
  276. window.removeEventListener('resize',this.getLastSectionH)
  277. window.removeEventListener('scroll',this.handlerScroll)
  278. window.onmousewheel=document.onmousewheel=''
  279. }
  280. },
  281. methods: {
  282. // 获取最后一个selection的高度
  283. getLastSectionH() {
  284. const footerbar = document.querySelector('.footerbar')
  285. const footerHeight = window.getComputedStyle(footerbar).height
  286. this.computedH = `calc(100vh - ${footerHeight})`
  287. },
  288. // 监听滚动事件
  289. handlerScroll() {
  290. const sectionArr = document.querySelectorAll('.section')
  291. const offsetTopArr = []
  292. // 获取每个section的offsetTop
  293. // NodeList 类数组对象可以用forEach循环
  294. sectionArr.forEach(item => {
  295. offsetTopArr.push(item.offsetTop)
  296. })
  297. const scrollTop = document.documentElement.scrollTop || document.body.scrollTop
  298. offsetTopArr.forEach((item,idx) => {
  299. if(scrollTop>=offsetTopArr[idx]) {
  300. this.active = idx
  301. }
  302. })
  303. },
  304. // 导航点点击跳转事件处理
  305. /**
  306. * @description:
  307. * @param {*} index 滚轮滑动定位section处理
  308. * @param {*} toTop 滑轮滚动时用,用以处理第二个section往上滑时恢复页面开头
  309. * @param {*} STEP 每次滑动的步数
  310. * @return {*}
  311. */
  312. handlerToSection(index,toTop,STEP = 100) {
  313. let targetOffsetTop
  314. // toTop代表滑轮滚动从section1到banner图时,需要滚动到顶部也就是offsetTop为0的位置
  315. if(toTop && index === 0) {
  316. targetOffsetTop = 0
  317. }else {
  318. targetOffsetTop = document.querySelector(`.section:nth-child(${index+1})`).offsetTop
  319. }
  320. // 获取当前 offsetTop
  321. let scrollTop = document.documentElement.scrollTop || document.body.scrollTop
  322. // 判断是往下滑还是往上滑
  323. if (scrollTop > targetOffsetTop) {
  324. smoothUp()
  325. } else {
  326. smoothDown()
  327. }
  328. // 定义往下滑函数
  329. function smoothDown() {
  330. // 如果当前 scrollTop 小于 targetOffsetTop 说明视口还没滑到指定位置
  331. if (scrollTop < targetOffsetTop) {
  332. // 如果和目标相差距离大于等于 STEP 就跳 STEP
  333. // 否则直接跳到目标点,目标是为了防止跳过了。
  334. if (targetOffsetTop - scrollTop >= STEP) {
  335. scrollTop += STEP
  336. } else {
  337. scrollTop = targetOffsetTop
  338. }
  339. document.body.scrollTop = scrollTop
  340. document.documentElement.scrollTop = scrollTop
  341. requestAnimationFrame(smoothDown)
  342. }
  343. }
  344. // 定义往上滑函数
  345. function smoothUp() {
  346. if (scrollTop > targetOffsetTop) {
  347. if (scrollTop - targetOffsetTop >= STEP) {
  348. scrollTop -= STEP
  349. } else {
  350. scrollTop = targetOffsetTop
  351. }
  352. document.body.scrollTop = scrollTop
  353. document.documentElement.scrollTop = scrollTop
  354. requestAnimationFrame(smoothUp)
  355. }
  356. }
  357. },
  358. handlerApplyUse(labelText) {
  359. this.labelText = labelText
  360. this.modalViable = true
  361. },
  362. resetStatus() {
  363. this.$refs.sdkForm.handlerResetStatus()
  364. }
  365. },
  366. watch: {
  367. modalViable(newValue){
  368. if(newValue){
  369. if(window){
  370. window.removeEventListener('resize',this.getLastSectionH)
  371. window.removeEventListener('scroll',this.handlerScroll)
  372. window.onmousewheel=document.onmousewheel=''
  373. }
  374. }else{
  375. let num=1; let prev; let next;
  376. const infoMoves = document.querySelectorAll('.info_move')
  377. let interval = setInterval(function (){
  378. if(num > 2){num=0;}
  379. infoMoves[num].style.transform= 'translateY(0)'
  380. infoMoves[num].style.opacity= 1
  381. prev=num-1;
  382. if(prev < 0){prev=2;}
  383. infoMoves[prev].style.transform= 'translateY(-100%)'
  384. infoMoves[prev].style.opacity= 0
  385. next=num+1;
  386. if(next > 2){next=0;}
  387. infoMoves[next].style.transform= 'translateY(100%)'
  388. infoMoves[next].style.opacity= 0
  389. num++;
  390. },2000);
  391. this.$once('hook:beforeDestroy',()=> {
  392. clearInterval(interval)
  393. interval = null
  394. })
  395. this.getLastSectionH()
  396. // footer存在媒体查询, 需动态计算高度
  397. window.addEventListener('resize',throttle(200,this.getLastSectionH))
  398. window.addEventListener('scroll',throttle(200,this.handlerScroll))
  399. // 绑定鼠标滑轮滚动事件
  400. window.onmousewheel=document.onmousewheel=throttle(50,(e)=> {
  401. if(e.wheelDelta < 0 && this.active < 6) {
  402. this.handlerToSection(this.active+1,false,50)
  403. }else if(e.wheelDelta > 0 && this.active >= 0) {
  404. this.handlerToSection(this.active,true,50)
  405. }
  406. },{noLeading: true})
  407. // noLeadind<T> 代表第一次不触发函数执行,解决了鼠标滚轮事件在防抖处理后还触发两次绑定事件的问题
  408. }
  409. }
  410. }
  411. }
  412. </script>
  413. <style lang="scss">
  414. @import '@/assets/mixins.scss';
  415. .content {
  416. .section{
  417. height: 100vh;
  418. min-height: 400px;
  419. &.info_wrap{
  420. position: relative;
  421. }
  422. }
  423. .banner{
  424. height: 100%;
  425. background: url(http://cn-file.17pdf.com/website/sdk/banner_bg_01.png) repeat;
  426. text-align: left;
  427. position: relative;
  428. color: #fff;
  429. .bg{
  430. position: absolute;
  431. right: 0px;
  432. bottom: 0px;
  433. line-height: -10px;
  434. width: 906px;
  435. height: 100%;
  436. background: url(http://cn-file.17pdf.com/website/sdk/banner_bg_02.png) no-repeat;
  437. }
  438. .txt{
  439. position: absolute;
  440. left: 10%;
  441. top: 50%;
  442. margin-top: -235px;
  443. }
  444. h1{
  445. margin: 0px;
  446. font-size: 120px;
  447. margin-bottom: 38px;
  448. }
  449. .sub_title{
  450. margin:0px;
  451. font-size: 52px;
  452. line-height: 60px;
  453. }
  454. .img{
  455. margin-top: 30px;
  456. }
  457. .trail-btn, .buy-btn {
  458. display: inline-block;
  459. width: 186px;
  460. height: 53px;
  461. font-size: 16px;
  462. font-weight: bold;
  463. border-radius: 30px;
  464. line-height: 53px;
  465. text-align: center;
  466. cursor: pointer;
  467. &:hover {
  468. opacity: 0.7;
  469. }
  470. }
  471. .btns {
  472. margin-top: 30px;
  473. }
  474. .trail-btn {
  475. margin-right: 20px;
  476. color: #0097FF;
  477. background-color: #fff;
  478. }
  479. .buy-btn {
  480. line-height: 49px;
  481. color: #fff;
  482. border: 2px solid rgba(255,255,255,1);
  483. }
  484. }
  485. .item{
  486. height: 100%;
  487. &.left .discription{
  488. .img{
  489. span{
  490. right: 92px;
  491. }
  492. }
  493. .txt{
  494. .wrap{
  495. left: 50px;
  496. }
  497. }
  498. }
  499. &.right .discription{
  500. .img{
  501. span{
  502. left: 92px;
  503. }
  504. }
  505. .txt{
  506. .wrap{
  507. right: 100px;
  508. }
  509. }
  510. }
  511. .discription{
  512. height: 56%;
  513. .img{
  514. width: 50%;
  515. height: 100%;
  516. float: left;
  517. position: relative;
  518. span{
  519. width: 340px;
  520. height: 300px;
  521. position: absolute;
  522. top: 50%;
  523. margin-top: -170px;
  524. &.filebrowse{
  525. background:url(http://cn-file.17pdf.com/website/sdk/SDK_bigicon.png) -736px -4px;
  526. .locker{
  527. position: absolute;
  528. left: 50px;
  529. bottom: 28px;
  530. transition: all 1s;
  531. &.animation{
  532. animation: locker 1.5s linear;
  533. }
  534. @include keyframes(locker) {
  535. 0% {
  536. transform: rotate(0deg);
  537. }
  538. 20% {
  539. transform: rotate(-18deg);
  540. }
  541. 55% {
  542. transform: rotate(20deg);
  543. }
  544. 70% {
  545. transform: rotate(-12deg);
  546. }
  547. 85% {
  548. transform: rotate(16deg);
  549. }
  550. 95% {
  551. transform: rotate(-4deg);
  552. }
  553. 100% {
  554. transform: rotate(8deg);
  555. }
  556. }
  557. }
  558. }
  559. &.annotation{
  560. background:url(http://cn-file.17pdf.com/website/sdk/SDK_bigicon.png) -1118px -4px;
  561. .edit{
  562. position: absolute;
  563. left: 0px;
  564. top: 60px;
  565. &.animation{
  566. animation: edit 1s linear;
  567. }
  568. @include keyframes(edit) {
  569. 0% {
  570. transform: translateX(-150px);
  571. opacity: 0;
  572. }
  573. 100% {
  574. transform: translateX(0px);
  575. opacity: 1;
  576. }
  577. }
  578. }
  579. .remove{
  580. position: absolute;
  581. right: 0px;
  582. bottom: 10px;
  583. &.animation{
  584. animation: remove 1s linear;
  585. }
  586. @include keyframes(remove) {
  587. 0% {
  588. transform: translateX(150px);
  589. opacity: 0;
  590. }
  591. 100% {
  592. transform: translateX(0px);
  593. opacity: 1;
  594. }
  595. }
  596. }
  597. }
  598. &.dig{
  599. background:url(http://cn-file.17pdf.com/website/sdk/SDK_bigicon.png) -1472px -4px;
  600. .pen{
  601. position: absolute;
  602. left: 70px;
  603. top: 126px;
  604. &.animation{
  605. animation: pen 1.5s linear;
  606. }
  607. @include keyframes(pen) {
  608. 0% {
  609. transform: translateX(0px);
  610. }
  611. 60% {
  612. transform: translateX(36px);
  613. }
  614. 100% {
  615. transform: translateX(0px);
  616. }
  617. }
  618. }
  619. }
  620. &.txtedit{
  621. background:url(http://cn-file.17pdf.com/website/sdk/SDK_bigicon.png) -380px -4px;
  622. .magnifier{
  623. position: absolute;
  624. right: 40px;
  625. bottom: 36px;
  626. &.animation{
  627. animation: magnifier 2s linear;
  628. }
  629. @include keyframes(magnifier) {
  630. 0% {
  631. transform: rotate(0deg);
  632. }
  633. 20% {
  634. transform: rotate(-20deg);
  635. }
  636. 55% {
  637. transform: rotate(40deg);
  638. }
  639. 70% {
  640. transform: rotate(-10deg);
  641. }
  642. 85% {
  643. transform: rotate(30deg);
  644. }
  645. 95% {
  646. transform: rotate(-4deg);
  647. }
  648. 100% {
  649. transform: rotate(14deg);
  650. }
  651. }
  652. }
  653. }
  654. &.document{
  655. background:url(http://cn-file.17pdf.com/website/sdk/SDK_bigicon.png) -0px -4px;
  656. .rotate{
  657. position: absolute;
  658. right: 38px;
  659. top: 50px;
  660. &.animation{
  661. animation: rotate 1.5s linear;
  662. }
  663. @include keyframes(rotate) {
  664. 0% {
  665. transform: rotate(0deg);
  666. }
  667. 70% {
  668. transform: rotate(-360deg);
  669. }
  670. 84% {
  671. transform: rotate(-270deg);
  672. }
  673. 100% {
  674. transform: rotate(-360deg);
  675. }
  676. }
  677. }
  678. .zoom{
  679. position: absolute;
  680. left: 76px;
  681. bottom: 44px;
  682. &.animation{
  683. animation: rotate 1.5s linear;
  684. }
  685. @include keyframes(rotate) {
  686. 0% {
  687. transform: rotate(0deg);
  688. }
  689. 70% {
  690. transform: rotate(-360deg);
  691. }
  692. 84% {
  693. transform: rotate(-270deg);
  694. }
  695. 100% {
  696. transform: rotate(-360deg);
  697. }
  698. }
  699. }
  700. }
  701. }
  702. }
  703. .txt{
  704. width: 50%;
  705. height: 100%;
  706. float: left;
  707. position: relative;
  708. .wrap{
  709. position: absolute;
  710. top: 50%;
  711. margin-top: -42px;
  712. min-width: 336px;
  713. h2{
  714. font-size: 32px;
  715. color: rgb(51,51,51);
  716. margin: 0px 0px 16px;
  717. }
  718. p{
  719. font-size: 24px;
  720. color: rgb(102,102,102);
  721. }
  722. }
  723. }
  724. }
  725. .more{
  726. height: 44%;
  727. background:rgb(250,250,250);
  728. box-shadow: 0px 1px 5px rgba(0,0,0,0.15);
  729. text-align: center;
  730. position: relative;
  731. padding-top: 60px;
  732. .more_icon{
  733. width: 59px;
  734. height: 34px;
  735. background: url(http://cn-file.17pdf.com/website/sdk/more.png) no-repeat;
  736. position: absolute;
  737. left: 50%;
  738. top: -30px;
  739. margin-left: -29px;
  740. }
  741. .list{
  742. display: inline-block;
  743. width: 240px;
  744. text-align: center;
  745. margin:0px 77px;
  746. height: 206px;
  747. vertical-align: top;
  748. .iocn{
  749. width: 89px;
  750. height: 89px;
  751. display: inline-block;
  752. &.filebrowse1{
  753. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -176px 0px;
  754. }
  755. &.filebrowse2{
  756. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -264px 0px;
  757. }
  758. &.filebrowse3{
  759. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -352px 0px;
  760. }
  761. &.annotation1{
  762. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -440px 0px;
  763. }
  764. &.annotation2{
  765. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -528px 0px;
  766. }
  767. &.annotation3{
  768. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -616px 0px;
  769. }
  770. &.dig1{
  771. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -960px 0px;
  772. }
  773. &.dig2{
  774. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -1056px 0px;
  775. }
  776. &.txtedit1{
  777. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -792px 0px;
  778. }
  779. &.txtedit2{
  780. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -880px 0px;
  781. }
  782. &.txtedit3{
  783. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -704px 0px;
  784. }
  785. &.document1{
  786. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat -88px 0px;
  787. }
  788. &.document2{
  789. background: url(http://cn-file.17pdf.com/website/sdk/SDK_icon.png) no-repeat 0px 0px;
  790. }
  791. }
  792. h3{
  793. font-size: 24px;
  794. color: rgb(51,51,51);
  795. margin: 0px 0px 20px;
  796. }
  797. p{
  798. text-align: center;
  799. font-size: 16px;
  800. color: rgb(76,76,76);
  801. line-height: 26px;
  802. }
  803. }
  804. }
  805. }
  806. .info{
  807. width: 100%;
  808. height: 150px;
  809. text-align: center;
  810. position:absolute;
  811. left: 0px;
  812. top: 50%;
  813. margin-top: -75px;
  814. ul{
  815. width: 300px;
  816. height: 118px;
  817. overflow: hidden;
  818. padding:0px;
  819. display: inline-block;
  820. position: relative;
  821. li{
  822. height: 100%;
  823. line-height: 118px;
  824. font-size: 84px;
  825. color: rgb(34,34,34);
  826. list-style: none;
  827. background: #fff;
  828. position: absolute;
  829. left: 0px;
  830. top: 0px;
  831. transition: all 1s;
  832. }
  833. }
  834. p{
  835. font-size: 34px;
  836. color: rgb(76,76,76);
  837. display: inline-block;
  838. text-align: left;
  839. }
  840. }
  841. }
  842. .index{
  843. position: fixed;
  844. right: 126px;
  845. top: 28%;
  846. margin-top: -96px;
  847. li{
  848. list-style: none;
  849. width: 18px;
  850. height: 18px;
  851. background:rgba(255,131,131,0.2);
  852. border-radius: 100%;
  853. margin: 12px 0px;
  854. cursor: pointer;
  855. &.active{
  856. background: rgb(255,131,131);
  857. box-shadow: 0px 0px 4px rgb(255,131,131);
  858. }
  859. }
  860. }
  861. </style>