发生背景:
随着现在国内的社交软件用户群体的不断扩大,商家打广告的方式(套路)也越来越多了,每次走在大街上都可以看到商家打出来广告牌,”朋友圈点赞超过30享受六折优惠”。
随着现在国内的社交软件用户群体的不断扩大,商家打广告的方式(套路)也越来越多了,每次走在大街上都可以看到商家打出来广告牌,”朋友圈点赞超过30享受六折优惠”。
WePY (发音: /'wepi/)是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。
|
|
├── dist 小程序运行代码目录(该目录由WePY的build指令自动编译生成,请不要直接修改该目录下的文件)
├── node_modules
├── src 代码编写的目录(该目录为使用WePY后的开发目录)
| ├── components WePY组件目录(组件不属于完整页面,仅供完整页面或其他组件引用)
| | ├── com_a.wpy 可复用的WePY组件a
| | └── com_b.wpy 可复用的WePY组件b
| ├── pages WePY页面目录(属于完整页面)
| | ├── index.wpy index页面(经build后,会在dist目录下的pages目录生成index.js、index.json、index.wxml和index.wxss文件)
| | └── other.wpy other页面(经build后,会在dist目录下的pages目录生成other.js、other.json、other.wxml和other.wxss文件)
| └── app.wpy 小程序配置项(全局数据、样式、声明钩子等;经build后,会在dist目录下生成app.js、app.json和app.wxss文件)
└── package.json 项目的package配置
```
使用微信开发者工具新建项目,本地开发选择生成的dist目录,会自动导入项目目录配置
介绍:
text-shadow
属性可以给页面上的文字增添阴影效果,text-shadow
在Css2.1的时候是被删除了的一个属性,但是呢在 3.0 的Css中又恢复了使用
|
注:前两个参数在使用的时候必须给定
第一个length
表示阴影离开文字横方向的距离
第二个length
表示阴影离开文字纵方向的距离
第二个length
表示阴影模糊半径 即模糊范围
color
表示阴影颜色 可以放在三个length
之前 也可以放在之后 如果不给值 则使用元素默认color
$ 指定多个阴影: 每个阴影用逗号隔开
|
在Css3中可以使用background-size
来指定背景图像的尺寸
|
auto
: 默认值 保持背景图片的原始宽高比
length
: 设置背景图片的宽度和高度,如果只设置一个值,则第二个值会被设置为auto
按宽高比进行放大缩小
percentage
: 以父元素的百分比来设置宽度和高度,如果只设置一个值 同上
cover
: 此值是将图片放大,以适合铺满整个容器,这个主要用在当图片小于容器又无法使用background-repeat来实现,就采用cover
将背景图片放大到适合容器的大小,但是会使图片失真
contain
: 与cover
相反,将背景图片缩小以适合铺满整个容器,这个主要用在当背景图片大于元素容器时,而又需要将背景全部显示出来,就可以用contain
将图片缩小到适合容器的大小,这种方法同样会使图片失真
在Css3一个元素可以显示多个背景图像,还可以将多个背景图像进行重叠显示,这样对背景中所用素材调整变得更加容易。
|
图层的排序方法: 浏览器中显示时叠放的顺序是从上往下指定的,第一个图片放在最上面,最后指定的放在下面
介绍:
在Css3中可以利用transform
属性来实现文字或图像的旋转、缩放、倾斜、和移动。但是需要做兼容性处理,如下
-webkit-transform: rotateX(60deg);
-moz-transform: rotateX(60deg);
-ms-transform: rotateX(60deg); /*IE9*/
-o-transform: rotateX(60deg);
rotate(60deg)
;顺时针旋转 deg
是Css3中的角度单位
|
rotate3D(X,Y,Z,deg)
定义 3D 旋转transform:scale(值)
值所指的是缩(小)放(大)倍率 如果值为负数并没有效果 纯属无聊scale(x,y)
使元素在x轴 y轴方向同时缩放scaleX(.5)
你应该懂得scaleY(.5)
同上transform:skew(deg)
倾斜角度skew(x,y)
元素在水平和垂直方向上同时倾斜 只有一个参数时,只在水平方向上倾斜 skewX(x)
元素仅在水平方向倾斜 skewY(y)
元素在垂直方向倾斜 translate
(值) 指定移动的距离 负值即反方向移动translate(x,y)
;在x轴和y轴同时移动,只有一个参数时,仅在水平方向移动; translateX(x)
;x轴方向移动 translateY(y)
;y轴方向移动
|
transition
支持从一个属性平滑过渡到另外一个属性
|
transition
主要包含四个属性值: transition-property
,属性规定应用过渡效果的CSS属性的名称。(当指定的CSS属性改变时,过渡效果将开始)值有三个类型:A、none
没有属性会获得过渡效果。
B、all
所有属性都将获得过渡效果。
C、property
定义应用过渡效果的CSS 属性名称列表,列表以逗号分隔。
transition-duration
规定完成过渡效果需妻花费的时间(以秒或毫秒计》,默认值0没有效果
|
用 transition和Animations的区别 :
transition
和Animations
的区别在于,transition
只能通过指定属性的开始值与结束值,然后通过两属性值之间进行垂滑过渡的方式来实现动画效果,所以transition不能实现复杂的动画效果,而Animations功能是是通过关键幀以及每个关键帧中的属性值来实现更为复杂的动画效果。
|
实现动画的方式:
A、linear: 匀速进行.
B、ease-in: 开始速度很慢,然后沿曲线进行加快,
C、ease-out: 开始速度很快,然后沿着曲线进行减速.
D、ease: 开始时速度很快,然后沿着曲线进行减速,然后再沿着曲线加速,
E、ease-in-out: 开始时速度很慢,然后沿着曲线进行加速,然后再沿着曲线减速.
也可以以合集的形式进行样式书写:
|
当我们在网页浏览器(Web browser)的地址栏中输入URL时,Web页面是如何呈现的?就让我们来聊聊从用户输入到页面加载完成的过程中都发生了什么事情。
传统的布局解决方案,基于盒模型,通过 css
中的display
属性 + position
属性 + float
属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
概念
flex
布局主轴和交叉轴
main axis
和垂直的交叉轴cross axis
flex-container
容器属性
flex-direction
决定主轴的方向(同时也是flex-item的排列方向)flex-direction: row | row-reverse | column | column-reverse;
row
(默认值):主轴是水平方向,flex-item水平从左往右排列 column
: 主轴呈垂直方向,从上边沿向下排列 reverse
参数: 将起始与终点进行互换flex-wrap
属性定义如果在一条轴线上排不下,换行的规则 flex-wrap:nowrap | wrap | wrap-reverse
nowrap
(默认值):不换行wrap
: 自然换行 直接将多余的元素从下一行开始排列 wrap-reverse
: 将第一行排列到下方 flex-flow
是flex-direction
和flex-wrap
的简写,默认值为row
nowrap
justify-content
:定义flex-item在主轴main-axis
上的对齐方式 justify-content: flex-start | flex-end | center | space-between | space-around
flex-start
(默认值):左对齐; flex-end
右对齐; center
居中;space-between
:两端对其,flex-item间的间隔距离相等space-around
:每个flex-item两侧的间隔相等,相当于设置左右margin
值相等align-items
: 定义flex-item
在交叉轴的对齐方式align-items: flex-start | flex-end | center | baseline | strecth。五个取值与交叉轴方向有关
align-content: flex-start | flex-end | center | space-between | space-around | stretch
stretch
(默认值):轴线沾满整个交叉轴space-between
:与交叉轴两端对齐,轴线间的间隔平均分布space-around
:每根轴线两侧的间隔相等flex-start
:与交叉轴起点对其 flex-item
项目的属性
flex: none | [ <’flex-grow’> <’flex-shrink’>? || <’flex-basis’> ]
align-self: auto | flex-start | flex-end | center | baseline | stretch;
函数用于指定对象的行为,在其中包含一组语句。用于代码复用、信息隐藏、和组合调用。
JavaScript 中的函数就是对象。函数对象连接到Function.prototype
(该原型对象本身连接到Object.prototype
)。每个函数对象在创建时会附加两个隐藏属性:函数的上下文
和实现函数行为的代码
。
函数对象在创建时也随配有一个prototype
属性。它的值是一个拥有constructor属性且值即为该函数对象。
|
var that = this
;
|
|
|
apply
方法让我们构建一个参数数组传递给调用函数。他也允许我们选择this
的值。apply方法接受两个参数,第一个是要绑定给this
的值,第二个是参数数组。
|
arguments
并不是一个真正的数组。是一个“类似数组”的对象。有length
属性,但没有任何数组的方法。函数执行时遇到关闭函数体的}
时结束。然后把控制权交还给调用该函数的程序。
return
可以使函数提前返回,当return语句执行时函数立即返回不在执行余下的语句。
函数总是会返回一个值,若没有指定,则返回undefined
。
若函数调用时在前面加上了new
前缀,且返回值不是一个对象的时候,则返回this
(该新对象)。
作用域的好处是内部函数可以访问定义他们的外部函数的参数和变量(除了this
和arguments
)。
|
狭义的说,返回的那个对象即闭包,它里面的方法可以访问它被创建时所处的上下文环境。status
访问的就说对象中的status
属性本身,通过闭包可以让一个局部变量驻留在内存中
避免在循环中创建函数,容易引起混淆。可以现在循环之外创建一个辅助函数,让辅助函数在返回一个绑定了当前i值的函数,这样就不会导致混淆了。
将一个函数作为参数,一旦接收到响应,再调用这个函数。
|
可以用函数和闭包构造模块。模块是一个提供接口却隐藏与实现的函数或者对象
模块模式的一般形式是:一个定义了私有变量和函数的函数;利用闭包创建可以访问私有变量和函数的特权函数;最后返回这个特权函数,或者把他们保存到一个可访问到的地方。
|
如果让方法返回this而不是默认的undefined,就可以启用级联,即连续调用。
函数可以将先前操作的结果记录在某个对象或者数组里,从而避免无谓的重复运算。这种优化被称为记忆(memoization)。
看到一些大神的next博客站点很酷 那到底是怎么实现的呢 经过一番的倒腾,终于将一些使用且比较酷的功能添加到自己的博客中
将头像图片放置在 source/images/ 目录下
配置为:avatar: /images/avatar.png 或者使用图片的在线地址
#canvas_nest
canvas_nest: true //开启动画
#three_waves
three_waves: false //关闭动画
在blog目录下安装hexo-generate-feed 然后打开z主题配置文件,在里面配置为如下样子:(就是在rss:的后面加上/atom.xml,注意在冒号后面要加一个空格)
#Set rss to false to disable feed link.
#Leave rss as empty to use site’s feed link.
# Set rss to specific value if you have burned your feed already.
rss: /atom.xml
有点不想写了
修改如下部分
#Post wordcount display settings
# Dependencies: https://github.com/willin/hexo-wordcount
post_wordcount:
item_text: true
wordcount: true
min2read: true
totalcount: false
separated_meta: true
在适当的位置添加以下页面代码
每个项目下一般都有一个 README.md 文件,但是使用 hexo 部署到仓库后,项目下是没有 README.md 文件的。
在 Hexo 目录下的 source 根目录下添加一个 README.md 文件,修改站点配置文件 _config.yml,将 skip_render 参数的值设置为skip_render:README.md
保存退出即可。再次使用 hexo d 命令部署博客的时候就不会在渲染 README.md 这个文件了。
在hexo站点目录下 使用hexo new page
新建一个页面 命名为tags 如下:
hexo new page tags
此时会在hexo > source文件夹中会生成一个tags
文件夹。
编辑tags文件夹下面的.md
文件
在菜单中添加链接。编辑 主题配置文件 , 添加 tags 到 menu 中,如下:
menu:
home: / || home
archives: /archives/ || archive
tags: /tags/ || tags
注:||之前的值是目标链接
,之后的是页面的图标
,图标名称来自于FontAwesome icon。若没有配置图标,默认会使用问号图标。
注意:最新版 hexo-theme-next 已经包含 LiveRe 插件,下载最新版本
,配置 livere_uid
即可使用
进入 LiveRe,注册账号。
LiveRe 有两个版本:
City 版:是一款适合所有人使用的免费版本;
Premium 版:是一款能够帮助企业实现自动化管理的多功能收费版本。City版就够了。
安装,获取 uid:
填写完成后,进入到 管理页面 -> 代码管理 -> 一般网站 代码中,data-uid
即为所需 uid
添加 LiveRe 插件
首先在 _config.yml 文件中添加如下配置:
#Support for LiveRe comments system.
#You can get your uid from https://livere.com/insight/myCode (General web site)
livere_uid:your uid
其中 livere_uid 即上一步获取到的 uid。其他的设置在最新版中都不需要配置啦 所以说程序员还是要用新的潮的东西
具体方法实现
找一张(32*32)的ico图标,并将图标名称改为favicon.ico,然后把图标放在/themes/next/source/images里,并且修改`主题配置文件`,下面就是图标配置代码修改即可:
favicon:
small: /images/favicon-16x16-next.png
medium: /images/favicon-32x32-next.png
apple_touch_icon: /images/apple-touch-icon-next.png
safari_pinned_tab: /images/logo.svg
添加百度/谷歌/本地 自定义站点内容搜索.
1.安装 hexo-generator-searchdb,在站点的根目录下执行以下命令:
npm install hexo-generator-searchdb –save
2.编辑 站点配置文件,新增以下内容到任意位置:
search:
path: search.xml
field: post
format: html
limit: 10000
3.编辑 主题配置文件,启用本地搜索功能:
> #Local search
local_search:
enable: true
编辑主题配置文件 如下设置则会开启自动截断功能
#Automatically Excerpt. Not recommend.
# Please use
倒腾了一天半终于自己实现了一个还不错的博客,在这篇文章中,假定你已经成功安装了 Hexo,并使用 Hexo 提供的命令创建了一个站点。如果没有搭建好自己的hexo+git pages博客界面可以看我另外一篇经验分享
**说明**:在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml。 其中,一份位于站点根目录下,主要包含 Hexo本身的配置;另一份位于主题next目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。为了描述方便,在以下说明中,将前者称为 站点配置文件, 后者称为 主题配置文件。
下载主题
1.在theme文件夹中将主题包克隆到本地,并将文件名hexo-theme-next
改成next
git clone https://github.com/iissnan/hexo-theme-next themes/next
2.前往Next[发布页面][1]将`sourcecode`下载到本地,解压所下载的压缩包至站点的 themes 目录下, 并将 解压后的文件夹名称(`hexo-theme-next-0.4.0`)更改为 `next`。
启用Next
当 克隆/下载 完成后,打开 站点配置文件, 找到 `theme` 字段,并将其值更改为`next`。
验证主题是否应用
1. NexT 主题安装完成。下一步我们将验证主题是否正确启用。在切换主题之后、验证之前, 最好使用 `hexo clean` 来清除 Hexo 的缓存。
2. 执行`hexo generate` 生成博客
3. 执行`hexo server`启用本地服务器 在本地可以直接查看修改以后的效果
>`INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to`
使用浏览器进行访问http://0.0.0.0:4000/
修改主题样式scheme
Scheme 的切换通过更改 主题配置文件,搜索 scheme 关键字。 你会看到有三行 scheme 的配置,将你需用启用的 scheme 前面注释 # 去除即可。
#Schemes
#scheme: Mist
scheme: Muse
#scheme: Pisces
#scheme: Gemini
站点配置文件
可以像我一样进行基本设置 每个冒号后面必须与内容用空格分割
#Site
title: HeiLiu //站点title
subtitle: 有一句Hello World想要对你说
description: 程序员 大学本科
keywords:
author: 刘江龙
language: zh-Hans //设置语言
timezone: Asia/Shanghai //时间#Deployment
deploy:
type: git
repo: https://github.com/HeiLiu/HeiLiu.github.io.git
branch: master
面试经常问的一道题
JS对数组去重的几种方法 (前面六种方法是普通数组,最后一种是对象数组)