自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

樊小书生

多看代码,多看书,付出总会有收获的

  • 博客(173)
  • 资源 (20)
  • 论坛 (1)

原创 ant-design-vue select 使用汇总

最近使用ant-design-vue,在使用select的时候遇到一些特殊情况,特此做一下整理汇总。首先实例中的下拉选中为:const options = [ { name: '北京', id: '00001', spell: 'beijing', simpleSpell: 'bj' }, { name: '上海', id: '00002', spell: 'shanghai', simpleSpell: 'sh' },

2020-08-23 21:10:00 107

原创 小程序tabBar右上角添加角标

小程序可以在 pages.json 中使用 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。关于 tabBar 的配置可以查看 https://uniapp.dcloud.io/collocation/pages?id=tabbar 。但我们有时候在某个 tab 展示角标,比如微信第一个 tab 的未读消息提示,第三个 tab 的朋友圈未读消息,这些信息是不能通过 pages.json 中的 tabBar 来配置的,而是使用如下API进行设置:uni.setTabBarB

2020-07-28 00:09:21 346

原创 uni-app开发小程序总结

最近开发项目中使用 uni-app 开发了 微信小程序,整个体验下来还算流畅,下面做一些总结:HBuilderX安装HBuilderX安装的时候选择标准版,不要下载APP开发版,至于uni-app编辑都可以在标准版里面通过插件安装或者是直接通过vue-cli命令行创建项目,另外就我个人使用之后,APP开发版编译小程序的时候,有时候会导致编译出来的小程序页面空白(只剩下<page></page>)。微信开发者工具HBuilderX运行/发布微信小程序在编译完成之后会尝试打开微信

2020-07-25 22:08:00 277

原创 Vue + Sentry 搭建前端异常监控系统

Sentry账号及SDK语言选择注册账号:https://sentry.io/for/vue/选择平台:Sentry通过官方的Sentry SDK与许多不同的语言和平台集成。本项目选择 Vue 。安装Sentry SDK安装Sentry的浏览器JavaScript SDK:@sentry/browser : yarn add @sentry/browser 或者 npm install @sentry/browser ,之后@sentry/browser 将报告通过应用程序捕获触发的任何异常

2020-07-20 08:19:34 235

原创 Docker 部署 Sentry

部署 Sentry 要求Docker 17.05.0+Compose 1.23.0+至少需要2400MB RAMDocker 及 Sentry 依赖安装如果 Docker 版本太低,需要卸载旧版本。卸载Docker旧版本较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。sudo yum remove docker docker-client docker-client-latest docker-common docker

2020-07-05 18:48:02 90

原创 Vue cli 配置CDN及Gzip

在Vue项目中,为了提升性能缩短首页的白屏时间(更具体的白屏时间可查看Web 性能优化-首屏和白屏时间),我们可以通过将公共库采用CDN引入的方式以及将资源文件压缩的方式。关于 配置CDN及Gzip 之后可从以下3个链接进行体验,在 Chrome 开发者工具 Network 中勾选 Disable Cache:未配置CDN及Gzip:https://www.fxss.work/authorityRouter配置CDN但未配置Gzip:https://www.fxss.work/authorityRo

2020-06-04 17:13:05 146

原创 nginx 配置 gzip_static

关于 nginx 的 gzip ,可以分为两种:nginx 动态压缩,对每个请求先压缩再输出。nginx 静态压缩,使用现成的扩展名为 .gz 的预压缩文件。nginx 动态压缩开启 nginx 动态压缩只需要在 nginx.conf 文件中做如下修改即可:# 开启和关闭gzip模式gzip on;# gizp压缩起点,文件大于1k才进行压缩gzip_min_length 1k;# 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区 gzip_buffer

2020-06-03 23:25:07 579

原创 Vue lifecycle 生命周期详解
原力计划

本文章主要介绍在全局混入、多个混入情况下初始化渲染的生命周期、更新生命周期以及销毁的生命周期。项目地址:vue-lifecycle演示地址:vue-lifecycle目录说明src/mixin 目录下放的是不同组件或者页面的混入。文件说明allMixin.js为全局混入appAMixin.jsapp.vue 的 AMixinappBMixin.jsapp.vue 的 BMixinhomeAMixin.jsHome.vue 的 AMixinhome

2020-05-31 17:14:31 170

原创 Vue路由权限
原力计划

在做后台管理系统的时候,一般都会遇见路由权限的问题。大家可以先体验一下最终的例子 authority vue Router ,例子项目地址 authorityRouter。在例子的登录页面中,通过选择不同的用户类型来模拟不同的用户账号登录的情况,通过不同的用户类型登录后台的时候,可以看到左侧的 menu 菜单是不同的,只有当有权限的时候才可以进行查看,并且当手动输入的时候都会直接到404页面。...

2020-04-06 18:47:59 190

原创 nuxt.js + pm2 部署

对于 nuxt 项目,一般采用官方提供的 create-nuxt-app 脚手架,具体过程 https://zh.nuxtjs.org/guide/installation/ 。在实际开发中一般使用 npm run dev 其本地服务进行开发发布部署的时候首先需要 npm run build (相当于 nuxt build ) 利用webpack编译应用,压缩JS和CSS资源之后将文件上传...

2020-04-06 00:30:04 683 4

原创 markdown-it代码块渲染、自定义行号、复制代码功能

之前写过一篇关于代码块渲染添加自定义行号的文章:markdown-it和highlight.js的结合渲染代码,并添加自定义行号 。不过在之后的渲染使用过程中由于效果不是很好,所以重新改版,并借此机会添加复制代码功能。本博客采用的后端是 node.js 框架 Express,在使用 markdown-it 渲染 md 文件的时候,选择在添加文章或者更新文章的时候由 md 生成 html。代码...

2020-03-12 22:30:25 1810

原创 nuxt + vant 适配 rem

创建项目npx create-nuxt-app <项目名>详情查看 安装-NuxtJS安装vantnpm i vant -S引入vant这里采用的是: 导入所有组件在根目录的 plugins 目录下创建 vant.js ,内容如下:import Vue from 'vue'import Vant from 'vant'import 'vant/lib/index...

2020-03-07 11:25:48 608 3

原创 VS code 常用插件

VS code是现在流行的编辑器之一,我们可以通过安装插件来实现更好的使用,下面是常用的插件合集(此处是以我常用的为例),可以直接在VS code左侧的Extensions中搜索:Chinese (Simplified) Language Pack for Visual Studio Code:中文翻译Auto Rename Tag:自动重命名标签Babel JavaScriptBea...

2020-02-29 17:27:21 316

原创 vue 自定义事件传参

先来简单看个例子:TodoList.vue :<template> <ul> <li> <todo-item v-for="item in list" :key="item.id" :status="doneList.includes(item.id)" :info="item"...

2020-02-29 00:03:05 655

原创 css选择器 - 1

[attribute]例子例子描述[target]选择带有 target 属性所有元素。[attribute=value]例子例子描述[target=_blank]选择 target="_blank" 的所有元素。[attribute~=value]例子例子描述[title~=flower]选择 title 属性包...

2020-02-09 19:20:06 71

原创 Element-UI / scrollbar-width.js

获取浏览器滚动条宽度,一般用于弹出层的时候,设置body的右边距,防止overflow: hidden的时候元素抖动。scrollbar-width.jsimport Vue from 'vue';let scrollBarWidth;export default function() { // 如果是服务器端渲染,则浏览器滚动条的宽度为0 if (Vue.prototype....

2020-02-05 19:53:43 179

原创 Element-UI / dom.js 的学习

isServerconst isServer = Vue.prototype.$isServer;Vue.prototype.$isServer表示当前是否是在服务器端渲染,例如使用 create-nuxt-app 创建的项目中,在 page/index.vue 的 created 生命周期中添加 console.log(this.$isServer) 服务器端打印出来为 true 。ie...

2020-02-05 19:51:09 319

原创 markdown-it和highlight.js的结合渲染代码,并添加自定义行号

一般写博客都采用md格式,快捷方便,但是写好之后为了方便查看,我们需要将md格式的代码解析。markdown-it本示例中采用的是markdown-it来解析md格式的代码。highlight.js本示例中采用的是highlight.js来进行代码高亮显示。但是highlight.js不支持行号,这会导致代码看起来不方便,本示例结合给博客的highlight.js添加行号和行号高亮中的方...

2019-12-16 18:58:40 1454

原创 mysqljs的Promise封装

mysqljs暂不支持Promise的写法,这导致我们代码的嵌套层级增多,不易于理解和维护,所以需要对其进行Promise封装,结合async/await来使代码易于维护。mysqljs的Promise封装假设我们将mysqljs的Promise封装放在db.js文件中,内容如下:const mysql = require('mysql');// 创建连接池const pool = m...

2019-11-26 08:31:07 229

原创 Express4 环境变量配置

在进项项目开发中经常会遇到不同环境切换的问题,比如说开发环境和正式环境对应不同服务器的 mysql ,总不能每次切换不同环境的时候修改代码,这样既容易出错,也不利于代码维护,所以这个时候就需要用到环境变量来进行配置了。开发环境在开发环境中,我们一般链接的是本地服务器的 mysql ,这个时候我们可以通过以下设置来进行变量控制:package.json:"scripts": { "s...

2019-10-17 08:35:58 93

原创 CSS预编译器

当前环境中,直接手写 css 的越来越少,主要是通过各种预编译器来做,主要原因会通过如下几点进行描述。先看一下 css 的一些基础点,这里只说关键的,完整的可以自己查看 css2.1规范 。css 基础知识点css 盒模型页面都是通过盒模型来拼凑的,首先需要知道都有哪些块模型(也就是 display 的值):inline: 行内元素inline-block: 行内块元素block...

2019-07-30 15:42:08 956

原创 vue 单页面重载(刷新)

首先先说一下标题,此处的重新(刷新)并不是浏览器 reload ,只是当前页面组件重新 create 。最近重构的项目中有重新加载的按钮,以前直接是 location.reload() ,但现在重构为了单页面方式,这个在 location.reload() 的话那体验就太 low 了,刚好前段时间看了花裤衩大佬的 手摸手,带你用vue撸后台 系列五(v4.0新版本) ,仔细思考之后不得不说这个...

2019-07-06 18:51:57 2545

原创 vue watch表单修改提醒

在大表单如果内容有修改,在返回其他页面的时候可以提醒 “是否需要保存您所做的更改?” ,在vue中,一个一个字段监听改变太麻烦,那么有没有简单一点的方案呢?答案是有的:我们可以使用 watch 。watch 中有个 deep 选项,为了发现对象内部值的变化,可以在选项参数中指定 deep: true 。例如:export default { data() { return {...

2019-07-04 20:25:58 1706

原创 Element 表单的 rules 验证 Number

在使用 Element 表单的时候,验证数字是很正常的需求。Element的表单验证用的是 async-validator ,查看可以设置 type 来进行验证 number ,我最初使用的如下:rules: { ... count: [ { type: 'number', message: '请输入正确数据', trigger: 'blur' } ], ...}count ...

2019-07-02 18:42:49 4581 1

原创 Element 换肤方案的探索

项目中如果需要换肤,黑白配的话还好说,就两种皮肤,稍微整整就好了,这次直接来了8套皮肤,这就有点渗人了,必须想办法偷偷懒了,开发环境也要好好琢磨一下了。Element 有提供多种的换肤方案,但我们项目中用的是 less ,所以只能用 命令行主题工具 了,但是我们的设计图有些和 Element 还不同,还需要去改样式,不是简单的命令行主题工具就能搞得定的,但命令行主题工具肯定是要用的。基于上面的...

2019-06-27 18:44:42 424

原创 wx-qq-share 定制微信、QQAPP内的分享内容

定制微信,手机QQ,QQ空间APP内的分享内容。示例:,此示例暂时只提供QQ和QQ空间分享(微信需要配置参数)。代码参照http://open.mobile.qq.com/api/component/share,修改点如下:将微信改为采用最新版1.4.0,并加入updateAppMessageShareData和updateTimelineShareData方法;增加wxUrl参数,微信...

2019-06-25 19:59:52 458

原创 vue-cli-vant-starter(vue-cli 和 vant 结合的项目开发模板)

新项目每次都需要去配置一个新的开发环境,索性直接搭一个模板,为以后快速开发使用。项目地址:vue-cli-vant-startervue-cli 和 vant 结合的项目开发模板,主要内容如下(后续新增的内容会在其后使用方括号标识添加时间):将 axios 或者 $axios 添加到 Vue.prototype ,对 axios 的封装是基于 vue-cli-plugin-axios 插...

2019-05-30 19:55:25 2062

原创 git 常用命令总结

git教程git init初始化一个Git仓库。git add ${file}把文件添加到暂存区。git status哪些文件被修改过。git diff ${file}可以查看修改内容。git Commit提交暂存区的修改。git commit -m ${message}提交仓库时添加的备注信息。git log从最近到最远的提交日志。git log --graph ...

2019-05-28 21:38:09 63

原创 vue-cli-element-starter(vue-cli 和 element 结合的项目开发模板)

新项目每次都需要去配置一个新的开发环境,索性直接搭一个模板,为以后快速开发使用。项目地址:vue-cli-element-startervue-cli 和 element 结合的项目开发模板,主要内容如下:将 axios 或者 $axios 添加到 Vue.prototype ,对 axios 的封装是基于 vue-cli-plugin-axios 插件。对 axios 的拦截器进行配置...

2019-04-17 20:48:04 1138

原创 vue 请求代理==>>跨域问题

以下配置仅适用于vue cli3。在前后端分离的项目中,一般在开发过程中,前端应用是在本地localhost运行的,但此时 API 接口在其他主机上,这是进行 API 请求的时候就会产生跨域问题。这个时候你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。用法也很方便:第一步首先需要确定你是否安...

2019-03-09 20:28:34 355

原创 leetcode 有效的括号

问题描述给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: “()”输出: true输入: “()[]{}”输出: true输入: “(]”输出: false输入: “([)]”输出: false输入: “{[...

2019-02-26 19:29:05 69

原创 Array.flat的实现方式

Array.flat() 方法会递归到指定深度将所有子数组连接,并返回一个新数组。具体可查看Array.prototype.flat()

2019-02-26 19:25:49 2425 2

原创 leetcode 最长公共前缀

问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。输入: [“flower”,“flow”,“flight”]输出: “fl”输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题思路/** * @param {string[]} strs...

2019-02-25 19:39:27 82

原创 leetcode 回文数

问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。解题思路/** * @pa...

2019-02-24 20:19:10 64

原创 leetcode 罗马数字转整数

问题描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字...

2019-02-24 20:15:29 58

原创 leetcode 无重复字符的最长子串

问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。...

2019-02-24 20:07:30 60

原创 leetcode 整数反转

问题描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解题思路/** * @param {n...

2019-02-24 20:00:35 66

原创 leetcode 两数之和

问题描述给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路两次...

2019-02-24 19:51:42 44

原创 javascript Array方法总结(下篇)

每个方法都有相应的描述、语法、参数、返回值、注意项(可选)、例子(可选)。语法中的[]里面中的内容表示参数为可选参数。原文出自:https://fxss5201.github.io/practical-code-snippet/js/javascript/Array.htmlArray.prototype.lastIndexOf()描述:返回从数组中逆向找到给定元素的第一个索引,如果不存在...

2019-01-03 21:52:55 94

原创 javascript Array方法总结(上篇)

每个方法都有相应的描述、语法、参数、返回值、注意项(可选)、例子(可选)。语法中的[]里面中的内容表示参数为可选参数。Array.from()描述:从一个类似数组或可迭代对象中创建一个新的数组实例。语法:new_array = Array.from(arrayLike[, callback(element[, index[, array]])[, thisArg]]);参数:ar...

2018-12-29 12:32:47 280

jquery.placeholder.min.js

jquery.placeholder.min.js

2017-08-20

左滑删除.zip

仿照QQ的信息列表的左滑删除交互操作

2017-07-02

jQuery.lazyload.js

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担.

2017-02-19

兼容IE7、IE8、IE9的input type="number"插件

IE11版本好像才兼容input type="number",但是现在Win7版本操作系统下,很多人的IE版本都是IE7/8/9,所以为了体验就自己写了一个小插件,支持设置最大值、最小值、数字间隔。

2017-02-18

Gif截图工具

GifCam 是一款能够轻松录制gif的软件,它体积小、免安装。它可以给现有的gif增加帧数。编辑gif图片,如添加文字、删除某些帧、修改特定帧的延迟等。

2017-01-22

Ionrangeslider.js

Ionrangeslider.js是一个不错的,舒适,易于定制的范围滑块,支持自定义皮肤。还支持事件和公共方法,具有灵活的设置,完全可以用CSS改变。它支持触摸的设备,兼容性支持 iPhone, iPad, Google Chrome, Mozilla Firefox, Opera, Safari, IE(8.0+)。

2017-01-19

Node.js开发指南_中文正版.pdf

本书首先简要介绍Node.js,然后通过各种示例讲解Node.js 的基本特性,再用案例式教学的方式讲述如何用Node.js 进行Web 开发,接着探讨一些Node.js 进阶话题,最后展示如何将一个Node.js 应用部署到生产环境中。本书面向对Node.js 感兴趣,但没有基础的读者,也可供已了解Node.js,并对Web 前端/ 后端开发有一定经验,同时想尝试新技术的开发者参考。

2016-12-26

svg经典入门

完整的pdf版本,(非常详细),一本关于svg非常经典的书籍哦

2016-12-26

《锋利的jQuery》

《锋利的jQuery》是人民邮电出版社在2009年6年出版的一本书籍。 本书循序渐进地对jQuery的各种函数和方法调用进行了介绍,读者可以系统地掌握jQuery的DOM操作、事件监听和动画、表单操作、AJAX以及插件方面等知识点,并结合每个章节后面的案例演示进行练习,达到掌握核心知识点的目的。

2016-11-07

你不知道的JavaScript(中卷)

JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。本套书直面当前JavaScript开发人员不求甚解的大趋势,深入理解语言内部的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。本书是其中卷,主要介绍了类型、语法、异步和性能。

2016-10-27

你不知道的JavaScript(上卷)

JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发者,如果没有认真学习也无法真正理解语言本身的特性。正是因为绝大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。 “你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用域和闭包”以及“this和对象原型”。掌握了这些知识之后,无论什么技术、框架和流行词语,你都能轻松理解。

2016-10-27

Jcrop-demo

关于Jcrop使用的一个demo,仅供参考

2016-10-18

HTML5程序设计(第2版)

今天,HTML5在Web标准之争中已经胜出并被大多数浏览器所支持。体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web开发和设计人员的当务之急。     《HTML5程序设计(第2版)》由旧金山HTML5用户组创建人联合另外2位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用WebSocket、Geolocation、Web Storage、Canvas、SVG及音频/视频等前所未有的新特性构建最流行、最强大的Web应用,并以大量的示例涵盖全部HTML5 API。   第2版进行了全面的修订,新增了针对HTML5视觉效果的SVG和针对用户体验的拖放这两部分内容,将助读者的Web设计和开发更上一层楼。

2016-10-16

JavaScript学习指南(第二版)

JavaScript学习指南(第二版)是学习JavaScript的入门经典之作,可以快速提高你的js能力。

2016-10-09

javascript 权威指南(第6版).pdf

javascript 权威指南(第6版)是有淘宝前端开发工作人员翻译,内容丰富精彩,是入门经典

2016-10-09

深入浅出ES6

ES6是一次重大的版本升级,与此同时,由于ES6秉承着最大化兼容已有代码的设计理念,你过去编写的JS代码将继续正常运行。事实上,许多浏览器已经支持部分ES6特性,并将继续努力实现其余特性。这意味着,在一些已经实现部分特性的浏览器中,你的JS代码已经可以正常运行。如果到目前为止你尚未遇到任何兼容性问题,那么你很有可能将不会遇到这些问题,浏览器正飞速实现各种新特性。

2016-10-07

phoneList通讯录

使用html5的localStorage本地存储,写的一个通讯录

2016-09-03

点赞代码实现

基于Zepto.js实现的移动端的常用点赞效果的实现

2016-08-30

省市区三级联动

基于jQuery的三级联动

2016-08-27

七夕表白神器

七夕了,为了程序员们的幸福,特此用h5和css3写了一个手机端表白神器,祝大家表白成功,哈哈

2016-08-23

樊小书生的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也
提示
确定要删除当前文章?
取消 删除