自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 krpano 二次开发 嵌入文字

4.获取到嵌入坐标,文字内容,文字链接,嵌入样式,文字背景色,文字颜色,文字字体大小,嵌入的分组。5.可以添加多个嵌入文字,进行统一保存。6.可以对嵌入文字列表进行重新编辑。3.可拖动嵌入文字进行移动位置。2. 对于嵌入文字的增删改。

2021-02-05 10:00:35 1055

原创 krpano hotspot 多边形热点 demo

如何二次开发做一个多边形热点基本每行都有注释功能1. 可以对多边形热点增删改2.拖动每一个点,可以进行移动,3.多边形划入划出的颜色效果,支持自定义边框和填充内容的颜色4.自定义多边形热点的名称,是否显示隐藏,名称始终保持在多边形热点的最高点5.获取到多边形热点的坐标需要¥30的可以加wx:zqcL842666 ...

2021-01-20 16:20:18 769

原创 krpano 多边形 热点 二次开发

功能1.可视化操作2.可以对多边形热点增删改3.拖动每一个点,可以进行移动,4.多边形划入划出的颜色效果,支持自定义边框和填充内容的颜色5.自定义多边形热点的名称,是否显示隐藏,名称始终保持在多边形热点的最高点6.获取到多边形热点的坐标,颜色,名称,是否显示7.可以添加多个多边形,进行统一的保存8.对多边形列表可以进行重新编辑9.当全景视角看到多边形时,会闪烁3下。(第一次看到)

2020-08-18 09:06:22 1855 4

原创 node 遍历文件是否存在数据

node 遍历文件是否存在数据

2022-06-17 17:03:53 129 1

原创 前端编码规范

CSS编码规范百度FEX前端团队:https://github.com/fex-team/styleguide/blob/master/css.md腾讯AlloyTeam前端团队:http://alloyteam.github.io/CodeGuide/#css谷歌:https://google.github.io/styleguide/htmlcssguide.html#CSSBootstrap 编码规范:https://codeguide.bootcss.com/#css京东:https://

2021-12-02 14:56:01 373

原创 dayjs

方法const time = dayjs() // d {$L: "en", $d: Thu Jul 08 2021 10:59:37 GMT+0800 (中国标准时间), $x: {…}, $y: 2021, $M: 6, …}const time = dayjs().format() //2021-07-08T11:00:24+08:00const time = dayjs('2018-04-04T16:00:00.000Z') //d {$L: "

2021-07-12 22:15:38 381

原创 typescript 学习 系列 (六)

// 1.abstract 抽象类:就是把共用的东西进行封装。 只能被继承,不能实例化 abstract class chouxiangA { name :string = '抽象类'; // 就是你知道下面类中都有这个方法,但是你不知道方法里具体写什么。这样的话定义abstract abstract getName() :string } // 类一 class chouxiangB extends chouxiangA{ ge

2021-07-11 22:29:03 122

原创 小程序 iphone手机,使用fixed定位底部后,被底部被遮挡

分别创建屏幕上边框,右边框,下边框,左边框安全距离:safe-area-inset-top,safe-area-inset-right,safe-area-inset-bottom,safe-area-inset-left使用:iOS 11padding-top: constant(safe-area-inset-top);padding-right: constant(safe-area-inset-right);padding-bottom: constant(safe-area-in

2021-07-09 17:13:08 1064

原创 typescript 学习 系列 (五)

1.class 构造器 constructor //知识点一 class GouzhaoqiA { //正常写法 /*public name:string; constructor(name:string){ this.name = name }*/ //简便写法 constructor(public name:string){ this.name = name; } } var gouzhoaqiB = new GouzhoaqiA('构造器')

2021-06-27 00:15:43 108

原创 git 学习

一.新建代码库在当前目录新建一个Git代码库git init新建一个目录,将其初始化为Git代码库git init 目录名把代码克隆到本地git clone 远程仓库地址

2021-06-02 14:47:25 172

原创 typescript 学习 系列(四)

未开始

2021-05-24 20:08:29 70

原创 typescript 学习 系列(三)

1. interface 和 type 类型别名 //(1)interface interface a{ x:number, y:string } //给这个变量加上类型注解 var b:a = { x:1, y:'2' }; /*还可以添加一些属性 1.readonly 是一个只读属性 2. ? 添加问号,可以规定这个属性可以不定义, 3. [prposName :string]:any 如果你不确定

2021-05-10 00:14:32 82

原创 typescript 学习 系列(二)

1.函数类型相关 //(1) 函数返回值的规定 function hanshuA():number{ console.log('规定函数返回值为数字') return 1 } function hanshuB():void{ console.log('void规定函数没有返回值') } function hanshuC():never{ throw new Error() console.log('never规

2021-05-08 23:48:42 80

原创 typescript 学习 系列(一)

1.静态类型 //(1)基本类型undefined null number string boolean symbol void) //注意:当设置为string类型后,后续就不能在赋值不同类型的数据 var num:string = '123'; //比如:设置数字(报错:不能将类型“string”分配给类型“number”。) num = 123; //(2)对象类型 var duixiangA:{a:number,b:string}={a:1,b:"3"} //对象 v

2021-05-07 23:03:30 82

原创 React hook

1.useState() 状态钩子在react里函数式组件是没有状态的,可以使用useState()import { useState } from 'react'function App (){//使用useState() //第一个参数是变量名,第二个参数是修改变量的方法.//useState 里面写想要的数据 const [num, setNum] = useState(0) reutnr( <div> <span>{num}</span&gt

2021-05-06 15:58:47 160

原创 React 引入less

react 安装less1.安装less 和less-loader npm i [email protected] --save npm i [email protected] --save2.暴露webpack.config.js npm run eject 出现报错(Remove untracked files, stash or commit any changes, and try again.)执行下面命令 git init git add . git commit -m 'up'3.配

2021-05-04 20:42:19 1310

原创 Vue自定义指令

VUE自定义1.先在mian.js里面定义一个指令2. 在组件中添加你定义的指令3. 然后在mian.js里面写一个钩子bind 钩子是当绑定元素时,要发生什么事情。(其他钩子,在底部介绍)第一个参数是:当前元素。可直接操作DOM。第二个参数是:一个对象,里面有一些属性,可以接收你传过来的参数。第三个参数是:vue编译的虚拟DOM。第四个参数是:上一个虚拟节点。只有在updata和componentUpdate钩子里面使用4. 在组件里面传入...

2021-05-03 16:56:51 82

原创 vue过滤器filter

过滤器 我主要使用的场景是过滤掉金钱乘后的,小数点的位数。1.局部过滤器 在页面写一个双花括号,第一个参数写的是你要传入的值,第二个参数是你在过滤器中定义的方法,你也可以传入两个值进去。中间用管道符分开。 在js里面也一个和生命周期同级的filters。 里面写一个函数,可以接收3个参数。 第一个参数你花括号里面第一个的值。 第二个参数是你花括号里第二个参数,方法里面传入的第一个值。 第三个参数是你花括号里第二个参数,方法里面传入的第二个值。...

2021-05-03 16:50:32 66

原创 react 虚拟Dom

什么是虚拟DOM  1.在React中,render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM。  2. 虚拟DOM是React的一大亮点,虚拟 DOM来确保只对界面上真正变化的部分进行实际的DOM操作。在实际开发中基本无需关心虚拟DOM是如何运作的,但是理解其运行机制不仅有助于更好的理解React组件的生命周期,而且对于进一步优化 React程序也会有很大帮助。我们先自己实现React底层方式一 1. 拿到s

2021-05-03 16:41:12 97

原创 react

React中单向数据流有什么好处和坏处优点:单向数据流 数据流动方向可以跟踪,流动单一,追查问题的时候可以跟快捷。缺点:遇到多页面时,数据传递过于繁琐。React中绑定事件是要改变this指向。React中为什么操作数据,页面会时时发送改变当组件的state或props发生变化时,会重新渲染render函数。会创建虚拟DOM,来更新页面React中setState中重要的事情1. 如何修改数据react中不能直接修改state数据this.state.text = ‘one’需要使用th

2021-05-03 16:24:25 105

原创 react生命周期

react 15.0的生命周期页面第一次加载componentWillMount 挂载前render 渲染DomcomponentDidMount 挂载后页面更新子组件更新componentWillReceiveProps 子组件有父组件传过来的值,就会触发这个生命周期shouldcomponentUpdata 是否更新页面,返回bool

2021-05-03 16:14:26 126 2

原创 Vue 移动端适配

1.安装vue插件 lib-flexiblenpm i lib-flexible --save-dev2. 在main.js 引入 lib-flexibleimport 'lib-flexible/flexible'3. 安装vue 插件 px2rem-loadernpm i px2rem-loader --save-dev4. 配置 px2rem-loader 在build文件中找到util.js,将px2rem-loader 添加到cssLoaders 下面,如: cons

2021-05-03 15:55:59 95

原创 vue动态设置img的src不生效问题

如果图片不在static文件下,在assets文件下的图片,不使用require是无法获取,被当成静态资源处理了<template> <div class="hello"> <!-- vue加载动态图片需要使用require --> <img :src="url" alt=""> </div></template><script>export default { data () {

2021-03-24 13:01:44 1344

原创 vue 打包后页面报错

vue第一次打包后 页面报错解决:找到config/index , 将assetsPublicPath: ‘/’, 改为 assetsPublicPath: ‘./’,删掉原来的打包文件,继续打包后,页面并不显示解决:找到配置的路由文件,把 mode:“history”,改为 mode:“hash”,hash:在地址栏是显示#号 /route-x/dist/index.html#/ahistory:地址不显示#号,但需要后台配合使用 https://editor.csdn.ne

2021-03-24 11:32:17 363

原创 krpano 嵌入文字

【代码】krpano 嵌入文字。

2021-01-20 17:59:25 605 4

原创 UEditor 百度富文本遇见的坑

## 1.上传图片 听说百度富文本上传图片有特别多的漏洞, 果断舍弃,自己来写UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; UE.Editor.prototype.getActionUrl = function(action) { if (action == 'uploadimage') { //让后端来配置接口,前端就吧地址填写一下就完事了。 ...

2020-12-21 13:22:50 461 1

原创 niceScroll.js

一、NiceScroll 介绍NiceScroll 是一款完全基于 jQuery 框架的滚动条插件,它不仅有着类似 iOS 系统设备的滚动条外观,而且还兼容各个浏览器。二、基本用法1,最简单的用法(1)我们只需在页面初始化完毕后,对需要使用这个滚动条插件的元素调用 niceScroll() 方法即可。先引入jq和nicescroll<script src="js/jquery-3.1.1.js" charset="utf-8"></script> &lt

2020-11-19 18:17:04 595

原创 深入理解scope

深入理解scope一. 简单的例子 var a = 1; function fn(a){ console.log(a) var a = 2; } fn(3) 显而易见,结果是3。 var a = 1; function fn(a){ console.log(a) a = 2; } a = 10; fn() 答案是undefined,如果答案不对的话,你的函数预编译需要好好学一下。预编译二. 执行的

2020-11-13 13:42:06 406

原创 new命令的原理

new 命令的4部曲 1.创建一个空对象。 2.将对象的原型 指向构造函数的prototype。 3.将这个空对象,赋值给构造函数内部的this关键字。 4.执行里面代码。正常来new一个构造函数 fnction One(){ this.foo = 123; } let two = new One; console.log(two.foo) //123new的过程是什么样子的 functi

2020-11-11 16:18:19 132

原创 js继承

原型链继承 One.prototype.lastName = 'zqc'; function One(){ } let one = new One(); Two.prototype = one; function Two(){ } let two = new Two(); Three.prototype = two; function Three(){ } let three = new Three();

2020-11-11 16:14:26 77

原创 构造函数与实例对象和原型对象三者间的关系

**构造函数与实例对象和原型对象三者间的关系**在我认知中,实例对象就是儿子,构造函数就是母亲,原型对象就是爸爸。每次生儿子,儿子就会把母亲身上的属性继承一份新的。例子: var obj = {name:'干爸爸',age: 66} //构造函数 function Mother(){ this.name = 'zqc', this.age = 33 } function MotherTwo(){ t

2020-11-11 15:59:02 164 3

原创 js全局预编译和局部预编译

**全局预编译和局部预编译**1.全局预编译第一步创建GO对象(global Object)。第二步找变量声明,将变量声明作为GO对象的属性值传进去,赋值为undefined。第三部找函数声明(不要找函数表达式),赋值于对应的GO属性值。例子:console.log(a); var a ; a = 10; console.log(a) function a (){} var a = function (){} console.log(a)解释:1.创

2020-11-11 15:54:52 240

原创 js中的宏任务与微任务

js中的宏任务与微任务 (只在浏览器中支持的,不包括node)宏任务里面放的有 :setTimeout 定时器setInterval 计时器requestAnimationFrame web中写动画的另一种方式微任务里面放的有:promise.then catch finally Promise里面的方法(这里不包括new Promise)MutationObserver 监视DOM发生改变先来一个小例子 setTim

2020-11-11 15:45:03 133

原创 一个网页形成的过程

1.DNS解析当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,我们需要的是一个IP地址。因此我们需要先把域名转换成相应的IP地址,这个过程称作DNS解析。 详细描述 1.浏览器首先搜索自身缓存的DNS记录。 2.如果没有或记录已经过期,则搜索hosts文件和操作系统缓存。 3.如果没有或记录已经过期,则向域名解析服务器发送解析请求。 4.如果还是没有,则开始递归 + 迭代解析。 5.获取域名和对应IP后,一步

2020-11-11 15:26:53 410

原创 基于ejs 安装express

第一步安装express npm install express -g注:这一步在前端文件里面安装第二步通过生成器工具express快速常见一个应用场景npm install express-generator@4 -g注:这一步在前端文件里外边安装第三步安装视图模板ejsexpress --view=ejs 自己写一个文件名cd 自己刚刚起的文件名npm installSET DEBUG=自己刚刚起的文件名:* & npm start安装成功端口3000 ,.

2020-11-10 18:04:01 614

原创 js函数生成器

**函数生成器**  1、函数生成器特点是函数名前面有一个‘*’  2、通过调用函数生成一个控制器  3、调用next()方法开始执行函数  4、遇到yield函数将暂停  5、再次调用next()继续执行函数用法: function* fn() { console.log(1); //暂停! yield; //调用next方法继续执行 console.log(2); } var iter =

2020-11-10 17:51:33 107

原创 vue路由懒加载

vue路由懒加载 一 、为什么要使用懒加载 可以加载页面更快,给客户更好的体验。 二、使用懒加载 常用的懒加载有两种方法:vue异步组件和ES中的import。1.不使用懒加载 import Vue from 'vue' import Router from 'vue-router' import Login from './../pages/Login/Login'

2020-11-10 17:48:31 46

原创 前端节流和防抖

为什么要使用节流和防抖 我在写商品上拉加载时,重复在数据库拿数据,这时候,就要使用节流和防抖。 在进行窗口的scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。 此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。如何理解防抖 当你点击时,等待2秒后才触发事件,但是当你在2秒内继续点击,就会重新延迟2秒执行。如何理解节

2020-11-10 16:51:11 199

原创 mysql 基本·语句

Mysql 1.增 insit into 表名(字段名) from values (字段值) 2.删 delete from 表名 where id=1 注意:注意加判断防止把整个数据删除 3.改 updata 表名 set 字段名=字段值 where 字段名=字段值 第一个是想修改的,第二个是条件。 4.查 select * from 表名 **or 和 and 运算符** and和or

2020-11-10 15:24:21 83

原创 Node+Mysql 连接池

node连接mysql 防止自动断开 (连接池)创建一个db文件夹里面有一个db.jsconst mysql = require('mysql'); // 创建连接数据库 let connection = mysql.createPool({ host: '数据库地址', user: '数据库名', password: '密码', database: '库名' }); module.export

2020-11-10 15:21:16 88

静态官网多边形热点.zip

krpano 官方多边形热点示例-开源 官方下载,不涉及侵权

2020-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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