Coding
未读1234567891011121314151617181920data () { return { scrolled: false }},ready () { window.addEventListener('scroll', this.handleScroll);},methods:{ handleScroll () { this.scrolled = window.scrollY; console.log(this.scrolled) },},destroyed () { window.removeEventListener('scroll', this.handleScroll)},created: function () { window.addEventListener('scroll', this.handleScr ...
1.安装vuex1231. npm install vuex --save2. 在src 目录下新建 store 文件夹
12345678910111213141516171819202122232425263. 在store 中新建 store.js import Vue from 'vue' import vuex from 'vuex' Vue.use(vuex); import peinfo from './peinfo.js' export default new vuex.Store({ modules:{ peinfo:peinfo } }) peinfo.js export default { state: { list: [] }, mutations:{ per ...
前提 一个基于平台内部的聊天项目,需要实现用户之间可以相互聊天发送消息,可以添加好友等功能。且消息必须是实时性的,并且用户下线后再次上线可以接受离线消息。
技术栈Vue.js + Html5 + CSS3 + Sass + Vuex + Axios + Websocket 等
源码Github
项目实例因为项目接口为线上接口 本地运行会报错 你可以将本地loaclhost 地址 指向 stone.snail.com或者直接访问 线上地址 在 另一个项目社区 注册账号 返回后即可体验
技术难点
实现从好友列表到聊天列表的发起
消息的存储
上下线状态的即时变动
收到消息即使提醒以及未读消息的数量
好友删除的通知 等等
项目运行git clone https://github.com/jiaopianjun/echat.gitnpm installnpm run dev
项目截图
前提项目需求:建立一个平台能够提供给玩家交流的地方。
功能需求
一个聚合页面,提供当前最新的帖子
个人模块:显示头像,个人昵称,个人已经加入的主题
热门讨论: 提供热门帖子
主题推荐
主题页面: 显示当前主题下 的帖子, 可提供 精华 攻略 等小标签的分类 可以 选择 时间 热门 进行排序
帖子页面: 显示 当前帖子的标签 如 官方 置顶 等。 同时分权限等级 可以 进行 置顶 删除等操作
评论: 可以对当前帖子进行评论,也可以对某条帖子进行评论,也可以回复其他评论者
帖子发表: 可以选择 帖子类型 标签等
技术栈Vue + Js + Sass + Css3 + Vue-resouse 等
源码Github
项目地址可以直接访问线上地址 社区 注册后 登录 即可 体验 发帖 回帖 等操作
项目运行
git clone https://github.com/jiaopianjun/social.git
npm install
npm run dev
项目截图
Coding
未读1.限制单行文本超出显示省略号12345678910div{ width: 65px; height: 30px; line-height: 30px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px;}
2.限制多行文本超出省略号1234567div{ overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
3.css三角形绘制123456789101112131415161718192021222324252627282930313233/*向上*/.div{ width:0; height:0; border-width:0 30px 30px; ...
Coding
未读1、垂直对齐1234567.verticalcenter{ position: relative; top: 50%; -webkit-transform: translateY(-50%); -o-transform: translateY(-50%); transform: translateY(-50%);}
2、伸展一个元素到窗口高度
1234567html, body { height: 100%;}div { height: 100%;}
3、基于文件格式使用不同的样式123456789101112131415a[href^="http://"]{ padding-right: 20px; background: url(external.gif) no-repeat center right;}/* emails */a[href^="mailto:"]{ padding-right: 20px ...
Coding
未读
什么是 Ajax? 如何创建一个Ajax?
AJAX(Asynchronous Javascript And XML) = 异步 JavaScript + XML 在后台与服务器进行异步数据交换,不用重载整个网页,实现局部刷新。
创建 ajax 步骤:
1.创建 XMLHttpRequest 对象
2.创建一个新的 HTTP 请求,并指定该 HTTP 请求的类型、验证信息
3.设置响应 HTTP 请求状态变化的回调函数
4.发送 HTTP 请求
5.获取异步调用返回的数据
6.使用 JavaScript 和 DOM 实现局部刷新
1234567891011121314151617181920var xhr = new XMLHttpRequest();xhr.open("POST", url, true);xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.onreadystatechange = ...
1.如何构建一个Vue项目1234561.首先安装node npm install node2.安装vue脚手架 vue-cli npm install -g vue-cli3.新建vue项目 vue init webpack newblog4.进入项目 cd newblog npm install 下载依赖模块5.npm run dev 运行项目6.npm run build 打包项目
2.Vue实例1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311 ...
HTML
Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
HTML5 为什么只需要写 ?
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
页面导入样式时,使用link和@import有什么区别?
介绍一下你对浏览器内核的理解?
常见的浏览器内核有哪些?
html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
简述一下你对HTML语义化的理解?
HTML5的离线储存怎么使用,工作原理能不能解释一下?
浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?
请描述一下 cookies,sessionStorage 和 localStorage 的区别?
iframe有那些缺点?
Label的作用是什么?是怎么用的?(加 for 或 包裹)
HTML5的form如何关闭自动完成功能?
如何实现浏览器内多个标签页之间的通信? (阿里)
webSocket如何兼容低浏览器?(阿里)
页面可见性(Page Visibility)API 可以有哪些用途?
如何在页面上实现一个圆形的可点击区域?
...
Coding
未读12345678910111213141516171819/*** 时间戳显示为多少分钟前,多少天前的处理** eg.** console.log(dateDiff(1411111111111)); // 2014年09月19日** console.log(dateDiff(1481111111111)); // 9月前** console.log(dateDiff(1499911111111)); // 2月前** console.log(dateDiff(1503211111111)); // 3周前** console.log(dateDiff(1505283100802)); // 1分钟前*/var dateDiff = function (timestamp) { // 补全为13位 var arrTimestamp = (timestamp + '').split(''); for (var start = 0; start < 13; start++) { if ...