手机端实现触摸拖拽效果 手机端实现触摸拖拽效果前言相信在开发手机端页面时,大家都会碰到拖拽元素的需求,下面我们就来介绍一下相关的实现过程,我们需要使用到touchstart,touchmove,touchend三个事件,1.touchstart是触摸开始时触发的事件2.touchmove是触摸移动过程中触发的事件3.touchend是触摸结束时触发的事件我们遇到这样一个需求,初始状态,底部会展示一小部分区域,当我们手指触摸到上面时,向上滑动,底部区域会随着手指移动而跟着向上移动这里有三块,1.首页,2.底部区域,
对服务端返回数据增加字段出现的bug 对服务端返回数据增加字段出现的bug前言:相信大家在处理数据时,会遇到这样的情况,对一个服务端返回数据进行处理,比如一下的服务端数据结构 list = [ { appInfoDto: { appDesc: null, appIconUrl: "http://image-c.wanyol.com/cdo-test-store/img/201907/13/2c1521d6ced7cc0b3e84
前端处理无网络兜底图片展示 前端处理无网络兜底图片展示前言:最近公司要求活动页面增加无网络的兜底页面,主要有图片和文字组成,但是在开发过程中发现在无网络情况下,文字可以正常展示,但是图片无法加载出来,原因呢其实是首页在网页中,对于图片的加载,其实试一次http请求,而请求在无网络的情况下是无法完成的,所以导致图片加载不出来。但是图片展示不了,这也就失去了这个页面的作用,我们改怎么办解决思路既然文字可以加载出来,说明html在无网络也是可以加载的,那么我们其实可以吧图片转成base64编码的格式写在代码中,这样不就可以显示嘛&l
前端优化-图片打包处理base64的原因 为什么要将图片打包成base64格式首先我们知道在前端技术中每一张图片的加载都会进行一次http请求,而每次http请求都是需要时间的,所以当网页中图片资源很多的时候,如果不进行base64转译,就会进行很多的http请求,会使页面加载时间大大的增加。优点:1.减少网页http请求,大大减少页面加载时间base64编码可以将图片添加到css中,实现请求css即可下载下来图片,减少了在此请求图片的请求缺点:1.base64格式的内容太多base64编码也是很长的,所以对比较大的图片,并不适合使用
前端如何实现活动分享功能 前言最近遇到了将我们做的活动链接以二维码的形式分享到微信,qq等第三方平台上,通过扫码的形式打开我们的活动的需求。难点1.如何将链接转换成二维码2.有二维码也不行,太单调了,分享出去的不能只是一个二维码,应该还需要有体现当前活动的元素,所以需要生成一个截图,在截图中需要二维码,活动元素等如何将链接转换成二维码,使用vue-qr首先在代码中下载vue-qr这个库 <vue-qr :text="browserUrl" :margin="0"
typescript 中函数参数为对象如何效验 前言ts作为编译型语言,最大的作用就是检测代码,当我们函数存在参数时,当然也需要进行类型检测1.当函数存在参数时 jumpPage(item: any): void { let { routeName, path, params, title } = item; }使用any,虽然不会报错,但是这样并不会进行类型检测 interface ConfigItems { title: string; icon: string; subTitl
前端实现页面点击电话号码跳拨打和发送短信 前言最近有遇到点击电话号码支持跳转拨打的功能,开始并不知道如何去实现,在网上找了一下,现在总结一下拨打电话:<a href="tel:18688888888">18688888888</a>,跳到拨号页面发送短信:<a href="sms:18688888888">18688888888</a>,跳到录入短信信息页面上面两种,我在本地测试都是可以正常实现的,不过在部分应用会存在不兼容的情况<a href="wtai://wp//mc;1868
node 的path模块中 path.resolve()和path.join() 1.path.join(path1,path2,path3…)作用:将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径。若任意一个路径片段类型错误,会报错。 1.console.log(__dirname); // F:\vue projectode 2.console.log(path.join(__dirname, '../templateOpen/')); // F:\vue project\templateOpen\ 3.c
js实现元素曝光 实现元素曝光的方法1.js实现元素曝光2.使用js的库实现元素曝光1. js实现元素曝光的难点1.如何判断一个元素是否曝光2.如何监听如何判断一个元素是否曝光 private isElementInViewport(el): boolean { let rect = el.getBoundingClientRect(); return ( rect.top >= 0 && rect.le
代码优化,代码质量建议 代码优化,代码质量建议1 使用有意义的变量命名使用有意义的名称,这会让你一眼就知道是什么意思。// 不推荐let xyz = validate(‘amyjandrews’);// 推荐let isUsernameValid = validate(‘amyjandrews’);将集合类型命名为复数是有意义的。因此,不要忘记 s:// 不推荐let number = [3, 5, 2, 1, 6];// 推荐let numbers = [3, 5, 2, 1, 6];描述函数做的事。
vscode如何关闭所有打开的文件 vscode如何关闭所有打开的文件前言有些时候,我们在使用vscode开发时,会打开很多文件页面,非常不利于自己查找想要的页面,这时就需要关闭页面,如果一个一个关闭,肯定是非常慢的,这里介绍一下快捷键1.先Ctrl+K2.其次Ctrl+W,这样就可以关闭所有的文件了,...
使用webpack,打包生成zip包 1:如何使用webpack生成zip包webpack插件filemanager-webpack-plugin(管理打包后的文件路径) const FileManagerPlugin = require('filemanager-webpack-plugin'); // webpack zip const srcFolder = path.resolve(__dirname, '../dist'); const zipFileName = utils.genName(); //
phaser.js,主要实现了移动底部篮子,接取下落物体 1.我将phaser分为3个文件,资源加载BootScene.js,逻辑处理PlayScene.js,整合game.js加粗样式1.1资源加载BootScene.jsimport { Scene } from 'phaser';// 本地import bgMusic from '@src/assets/music/bgMusic.mp3';import bomb from "@src/assets/receiveEuropeanGas/bomb.png"import european_gas
crypto-js的使用,AES加密 1.使用crypto-js,aes加密,一般可以对手机号,身份信息进行加密import AES from 'crypto-js/aes';import Utf8 from 'crypto-js/enc-utf8';import padZeroPadding from 'crypto-js/pad-zeropadding';let key = Utf8.parse('fad56/jRax5/71qM'); let iv = Utf8.parse('fad56/jRax5/71qM'); let
ajax、axios、fetch的区别 ajax、axios、fetch的区别1.jQuery ajax$.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {} });优缺点:本身是针对MVC的编程,不符合现在前端MVVM的浪潮基于原生的XHR开发,XHR本身的架构
检测数据类型的方法 检测数据类型的方法一.typeoftypeof操作符返回一个用来表示数据类型的字符串,注意typeof运算之后的结果都是字符串类型的注意:typeof是一个操作符,不是一个函数!1.“string” 值是字符串2.“boolean” 值是布尔值3.“number” 值是数值4.“undefined” 值未定义5.“object” 值是对象,数组或null6.“function” 值是函数7.“symbol” 值是Symbolvar num=123;var str="123";var
react的Hooks介绍 Hooks一.Hook简介Hook是React 16.8新增的特性.它可以让你在不编写class的情况下使用state以及生命周期等特性之前了解到组件有class(类)组件,和函数(无状态)组件,class组件中有自己的生命周期和自己的状态,而函数组件是一个无状态组件,Hook的出现正式为了解决这个问题,Hooks可以让函数式组件可以拥有state,生命周期等特性二.为什么要使用HookHook解决了我们在组件之间复用状态逻辑很难的缺陷,使我们更加便捷的操作可以复用的状态逻辑,因为是函数式组件,效
var、let、const的区别 var、let、const的区别一.var1.var属于ES5规范2.预解析var有预解析阶段,会被js解析器扫描,然后放进仓库,等待逐行代码的执行,此时var声明的变量初始值是undefined3.声明提升var会存在声明提升,当js解析器扫描到var关键字后,会将var声明的变量放进当前作用域的顶部4 作用域全局作用域或者函数作用域.5.挂载对象var 声明的全局变量会挂载到window对象上二.let1.let属于ES6规范2.let只在块级作用域有效一般一个大括号就是一个