520我是如何定制网页情书

栏目: Html · 发布时间: 4年前

内容简介:临近5.20表白节日,虽然我对这个节日没啥感觉,但周围的氛围实在是太热烈,群里的朋友讨论送送口红香水包包或者啥惊喜的,不过自己也有喜欢的人了,但送东西不是太合适,干脆花点心思做个小东西吧,表达自己一部分心意。所以就是所谓的网页表白咯,大家认为在网上随便找套,把内容换一下就行了,但都是大家看够的风格,再用下去也不合适。既然不需要后端支持,那就是纯粹静态页面,简单又方便,并不需要维护什么。所以我选择为了提高网页加载速度,所以像这种依赖
520我是如何定制网页情书

前言

临近5.20表白节日,虽然我对这个节日没啥感觉,但周围的氛围实在是太热烈,群里的朋友讨论送送口红香水包包或者啥惊喜的,不过自己也有喜欢的人了,但送东西不是太合适,干脆花点心思做个小东西吧,表达自己一部分心意。所以就是所谓的网页表白咯,大家认为在网上随便找套,把内容换一下就行了,但都是大家看够的风格,再用下去也不合适。

背景

既然不需要后端支持,那就是纯粹静态页面,简单又方便,并不需要维护什么。所以我选择 Vue-Cli 单应用项目。我一开始想法是所谓的属性内容再点缀点什么就行了。有次浏览类库不小心看到 roughjs 这个手绘风格的类库,所以设定风格为手绘风格,正好这里有个现成的 Examples 代码,直接移植过来完事了。

为了提高网页加载速度,所以像这种依赖 dom 类库并没有直接引入,直接 CDN 加载即可。还需要在 vue.config.js 额外配置达到忽略依赖文件编译和全局变量名的识别:

module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        rough: "rough",
        "window.rough": "rough",
        Typed: "Typed",
        "window.Typed": "Typed"
      })
    ]
  },
  chainWebpack: config => {
    config.externals({
      'rough': 'rough',
      'Typed': 'Typed',
    })
  },
};

这样直接在控制台输入 rough 可以看到它的方法函数。

其次就是 canva 绘制的寻找 dom 对象不推荐使用 document 方法查询,主要是性能问题,所以推荐大家使用 vue 中的 ref 注册 dom 这样大大减少 dom 遍历而减少性能。

不过在后来仔细阅读 Rough.js API 发现本身就支持绘制圆形、椭圆形、矩形和线,要是定制其他形状的话需要 svg 中的 path 绘制方法才能支持,本来想试试满屏的爱心,无奈自己水平不够,暂时放弃这方面的想法。不过利用 rc.path 方法绘制个爱心:

/**
 * 爱心手绘图绘制
 * @param self
 */
export const loveCanvas = (self) => {
  const rough = window.rough;
  const rc = rough.canvas(self.$refs.love);
  rc.path('M24.85,10.126c2.018-4.783,6.628-8.125,11.99-8.125c7.223,0,12.425,6.179,13.079,13.543  c0,0,0.353,1.828-0.424,5.119c-1.058,4.482-3.545,8.464-6.898,11.503L24.85,48L7.402,32.165c-3.353-3.038-5.84-7.021-6.898-11.503  c-0.777-3.291-0.424-5.119-0.424-5.119C0.734,8.179,5.936,2,13.159,2C18.522,2,22.832,5.343,24.85,10.126z',
    {
      fill: 'red',
      fillStyle: 'solid', // solid fill
      roughness: 0,
      hachureAngle: 60, // angle of hachure,
      hachureGap: 8,
      fillWeight: 3,
    }
  );
};

可以利用网上的在线 path 工具画出你想要的样子,工具会给你 path 绘制代码,故这里不再详细描述了。

字体

既然是手绘风格的字体,那么字体也需要可爱一些的,再把它们套入网页中。如果作为英文字体改变它的风格很简单,因为单词再怎么组成,字母就24个,再加上字符什么,也多不了多少。所以浏览国外很多网页,那满页字体真的炫彩得很,令人眩目。但作为中文字体,想改变他风格不容易,主要是中文字库实在是太大了,随便淘个字体包就是上兆了,针对英文字库最多也就一个 js (最大几百kb左右)库的大小,这样网页体验是非常不好的,所以现在中文网页都是利用系统自带的字库渲染的。

早在之前看到 字蛛 看到这个工具,根据它文档说明也很简单,就是在页面声明字体的类型,然后编译ttf文件将其它汉字排除,得到最小的字体文件,减少宽带流量加载。不过我这里是直接用 Fontmin 因为简单省事,直接将常用汉字 Chinese_5039 编译得出网页字体即可,然后存放 cdn 加载引入即可:

@font-face {
    font-family: "fzpx";
    src: url("fzpx.eot"); /* IE9 */
    src: url("fzpx.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
    
    url("fzpx.woff") format("woff"), /* chrome、firefox */
    url("fzpx.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
    
    url("fzpx.svg#fzpx") format("svg"); /* iOS 4.1- */
    font-style: normal;
    font-weight: normal;
}

其他

页面的一些按钮,卡片窗口,和加载器都是从 wired-elements 组件引进来利用即可,不过信封那里现在还存个问题,就是上一封下一封切换的时候,卡片窗口的高度是不会变的,所以内容多的时候,内容自动会错位撑开,因为时间太短,这个问题放在后面解决,为了避开这个问题,就是控制卡片窗口的内容字数了。

卡片窗口里面字打印机呈现使用的是 typed-js 使用方法也很简单也不再描述。

展示

已在github开源: Hello-SM

效果展示: http://i95.me/hello-sm

最后祝大家520能够脱离单身!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective java 中文版(第2版)

Effective java 中文版(第2版)

Joshua Bloch / 俞黎敏 / 机械工业出版社 / 2009-1-1 / 52.00元

本书介绍了在Java编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。 本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。本书内容全面,结构清晰,讲解详细。可作为技术人员的参考用书。一起来看看 《Effective java 中文版(第2版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具