自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

原创 JQuery轮播图效果

最近发现面试时常会要求写一段轮播图的效果;HTML部分<div id="box"> <div id="img"> //此处放图片 <img src="../img/photo1.jpg" alt=""> <img src="../img/photo2.jpg" alt=""> <img src="../img/photo3.jpg" alt=""> <img src="../img/photo4.jpg"

2020-08-16 21:07:38 294

原创 js中常见的算法面试题

1.超过范围的两个大整数相加主要思路:将数字转换为字符串,每个字符串按位相加function bigNumberAdd(number1, number2) { let result = "", carry = false; number1 = number1.split(""); number2 = number2.split(""); while (number1.length || number2.length || carry) {

2020-08-09 23:34:26 1494

原创 Vue路由以及路由钩子函数

vue路由模式vue路由有两种模式,hash和history,默认为hash模式hash:URL地址中带有‘#’,如http:localhost:8080/#/home, hash 的值为#/home,它的特点在于:hash 虽然出现URL中,但不会被包含在HTTP请求中,对后端完全没有影响,因此改变hash不会重新加载页面。原理:onhashchange事件,可以在window对象上监听这个事件const router = new VueRouter({ mode: 'hash',

2020-08-08 15:10:29 406

原创 JavaScript中的reduce()用法

reduce()方法对数组中的每一个元素执行一个reducer函数(由你提供),从而得到一个单一的输出值。reduce() 方法将一个数组中的所有元素还原成一个单一的输出值,输出值可以是数字、对象或字符串。reduce() 方法有两个参数,第一个是回调函数,第二个是初始值。回调函数回调函数在数组的每个元素上执行。回调函数的返回值是累加结果,并作为下一次调用回调函数的参数提供。回调函数带有四个参数。Accumulator(累加器)——累加器累加回调函数的返回值。Current Value(当前值)

2020-08-02 20:50:41 582

原创 nodeJs封装MongoDB的增删查改

对MongoDB的封装,主要使用express,通过npm下载mongodb包。在这里我们使用的是2.0.43版本的mongo数据库。db.js封装层const express = require("express");const MongoClient = require("mongodb").MongoClient;// 连接数据库//使用mongodb创建好数据库后,直接引用url,封装链接。function _connectDB(callback){ let url = "

2020-08-02 20:37:15 394

原创 几个npm快速开发技巧

运行npm init或npx create- response -app等命令几乎构建js项目的首选方式,无论是为客户端或服务器端,还是桌面应用程序。npm不仅仅是初始化项目或安装包,从长远来看,即使节省少量的时间也会产生显著的影响。基本快捷方式安装  —  常规:npm install,简写:npm i。测试  —  常规:npm test,简写:npm t。帮助  —  常规:npm --help,简写:npm -h。全局标志 —  常规: --global,简写:-g。保存为开发依赖

2020-07-26 22:46:24 205

原创 回顾CSS calc()函数的用法

css3 的 calc() 函数允许我们在属性值中执行数学操作。比如使用 calc() 指定一个元素宽的固定像素值为多个数值的和。.foo { width: calc(100px + 50px);}为什么是 calc在sass中遇到类似问题的情况.foo { width: 100px + 50px;}$width-one: 100px;$width-two: 50px;.bar { width: $width-one + $width-two;}首先,cal

2020-07-26 22:45:05 262

原创 回顾--css3中的flexbox布局

1. 容器和容器里的元素flexbox布局的两个最重要的概念是容器(蓝色)和容器里的子元素(红色)。在本文的例子中,容器和它的子元素都是div。横向布局为了实现flex布局,我们需要在容器的CSS里添加如下代码:.container { display: flex;}效果如下:对于容器里面的子元素,我们什么都不需要做。它们会自动的按横坐标一字排开。纵向布局在上面的演示中,缺省排列是沿着横坐标方向的,还有一个方向是纵坐标,这个坐标轴的概念在理解flex布局中非常重要。当我们在容

2020-07-20 00:14:02 243 1

原创 JS中的this指向问题

var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // 写法二 foo()上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。var obj = { foo: function () { console.log(this.bar) }, bar: 1};var foo = obj.foo;var bar = 2;obj.foo() //.

2020-07-19 20:23:39 156

原创 节流防抖的原理与基本实现

节流防抖的原理与基本实现使用场景防抖节流总结使用场景在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。防抖含义:持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。持续触发scroll事件时,并不执行handle函数,当100

2020-07-12 20:35:53 3593

原创 懒加载的基本原理与实现

懒加载其实就是延时加载,即当对象需要用到的时候再去加载。懒加载的优点:不需要将对象的实例化全部写到viewDidLoad中,可以简化代码,增强代码的可读性对象的实例化在getter方法中,各司其职,降低耦合性对系统的内存占用率会减少;基本原理:一张图片就是一个<img>标签,浏览器是否发起请求图片是根据<img>的src属性,所以实现懒加载的关键就是,在图片没有进入可视区域时,先不给<img>的src赋值,这样浏览器就不会发送请求了,等到图片进

2020-07-11 16:11:06 1113

原创 H5五大存储方式的总结

1、本地存储localstorage存储方式以键值对(key-value)的方式存储,永久存储,永不失效,除非手动删除大小每一个域名5M支持情况:IE9 localstorage不支持本地文件,需要将项目部署在服务器才可以支持。常用的API:getItem :取记录setItem :设置记录removeItem: 移除记录key :取key所对应的值clear: 清除记录存储的内容:数组、图片、json、样式、脚本等等,只要是序列化成字符串的内容都可以存储。2、本地存储ses

2020-07-05 22:56:24 1182

原创 es6里的Map数据结构

含义和基本用法ES6中新增了Map数据结构。Map结构类似于对象,也是键值对的集合,它存储的形式就是键值对。Map中”键“的范围不限于字符串,各种类型的值或对象都可以当作键。对象存储的问题:键名只能是字符串;获取数据数量的时候不方便键名容易和原型上的名称发生冲突const m = new Map(iterator);Map中传递的参数一般为二维数组形式,数组的子数组里面只能有两项,第一项为键,第二项为值。const m = new Map([ ['m',857], ['a',11

2020-07-03 10:33:47 258

原创 ES6 解构赋值知识点归纳

解构赋值ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructing)。例如:let [a,b,c] = [1,2,3];本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。如果结构不成功,变量的值就等于undefined。另一种情况是不完全解构,即等号左边的模式只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。数组的解构赋值let [a,b,c] = [1,2,3];//不完全解构let [a,[b],d

2020-06-28 10:22:54 202

原创 Symbol的使用场景

Symbol的使用场景使用Symbol来作为对象属性名(key)通常定义或访问对象的属性时都是使用字符串:let obj = { abc: 123, "hello": "world"}obj["abc"] // 123obj["hello"] // 'world'在利用Symbol以后定义和访问对象的属性:const PROP_NAME = Symbol()const PROP_AGE = Symbol()let obj = { [PROP_NAME]: "刘卿"

2020-06-28 09:03:30 1536

原创 ES5_保护对象

JS对象中的普通属性随时可以被修改、添加新属性、也可以被随时删除。主要是因为对象的属性默认是可以操作的。通过设置对象属性的可操作性,从而达到保护对象和保护属性保护属性命名属性:即可以用**.**访问的属性;数据属性:即直接存储属性值的属性。属性的四大特征:value:实际存储的属性值;writable: 是否可修改 默认为true;enumerable: 是否可被for in遍历到默认true。仅能控制for in,无法控制.的访问configurable: 是否可修改其它特性 是否可删

2020-06-21 23:44:44 200

原创 JavaScript的闭包到底有什么特别之处?

什么是闭包?闭包是可以访问其定义的“外部"范围的函数,因此,即使闭包函数终止,它也可以访问外部作用域中的值。例子:function takeOne(){ let i = 0; return function incrementFunction(){ return i++; }}上面的代码表示一个函数返回另一个函数。但是,调用takeOne并获取后incrementFunctioon,即使已经终止incrementFunction,takeOne也会记住局部变量takeOne。使用

2020-06-21 14:08:42 306

原创 Ts与Js的区别

上一篇文末介绍到Ts程序代码与编译过后的JS文件的区别异同:js代码:Ts代码:代码中最明显的区别就是Ts在定义字符串前,多了一个String.这就是其中最大的不同:TS必须指定数据类型js有的类型:boolean类型、number类型、string类型、array类型、undefined、nullts多出的类型tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)特别的类型void类型(没有任何类型)表示定义方法没有返回值never类型:是其他类型

2020-06-13 15:31:09 26486

原创 Typescript的安装及使用

TypeScript是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。在简单阅读TS的说明文档后,开始进行TS的环境配置与安装。官方网站:typescript官网配置环境,安装好node.js,使用npm安装Node.js安装好后,可以打开命令行工具,同时按下win+R,然后输入cmd就可以打开,打开后输入node -v如果看到版本号说明已经安装成功了安装TypeScript包在命令行窗口继续输入如下命令:np

2020-06-13 15:04:35 472

原创 PHP与JS的不同

什么是PHP?答:一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言让 Web 开发人员快速的书写动态生成的网页。PHP是一种脚本语言。编程语言:在执行前需要先进行编译的语言脚本语言:是一种解释型语言PHP能做什么?答:P

2020-06-06 15:20:24 144

原创 DOM事件的三个阶段

事件发生后,会在DOM树上传播,DOM事件流分为三阶段:捕获,目标,冒泡如下图:事件的发生:三个阶段捕获:由外 向内,记录各级元素上绑定的相同事件 IE8中无此阶段目标触发: 首先触发目标元素上的事件处理函数冒泡:按照捕获顺序的反向,有内到外,依次触发各级父元素绑定的事件处理函数在事件处理中目标阶段被看做冒泡阶段的一部分如果有多个相同类型事件的事件监听函数绑定到同一个元素,当该类型的事件触发时,它们会按照被添加的顺序执行。EventTarget.addEventListe

2020-06-06 15:09:19 400

原创 在浏览器地址栏输入一个URL后按回车后,会发生什么?

首先在地址栏输入地址按下回车以后:1、DNS进行域名解析:对 www.taobao.com 这个网址进行 DNS 域名解析工作,得到对应的 IP 地址Chrome浏览器会首先搜索浏览器的DNS缓存,看自身的缓存中是否有www.taobao.com对应的条目,而且没有过期,如果有且没有过期则解析到此结束。如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统的DNS缓存,如果找到且没有过期则停止搜索解析到此结束。如果在Windows系统的DNS缓存也没有找到,那

2020-05-31 22:28:41 423

原创 fullPage.js(全屏滚动插件)

fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。如今我们经常能见到全屏网站,尤其是国外网站。这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次。主要功能:fullPage.js的主要功能有:支持鼠标滚动、支持前进后退和键盘控制、多个回调函数、支持手机、平板触摸事件、支持 CSS3 动画、支持窗口缩放、窗口缩放时自动调整、可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等等。使用方法:引入方式:可以直接下

2020-05-31 22:10:49 957

原创 jQuery的基本动画

一、基本效果 显示与隐藏show()显示: 根据hide()方法记住的display属性值来显示元素。无参版本 - 不具有动画效果show(speed,callback)有参版本 - 具有动画效果speed - 设置动画执行的时长,单位为毫秒三个预定义值 - slow|normal|fastcallback - 当动画执行完毕后执行的函数hide() - 隐藏 将该元素的display样式改为 “none”。无参版本 - 不具有动画效果hide(speed,callback)有参版本

2020-05-25 00:44:33 153

原创 jQuery自定义动画方法animate()

animate()方法执行CSS属性集的自定义动画,该方法会将一个属性在指定或者默认的时间内从一个属性值变化到另一个属性值,由于属性值是逐渐变化的,所以就形成了所谓的动画效果。用法:$(selector).animate({styles},speed,easing,callback);参数说明:styles:styles用来设置对象属性值的目标值,即需要将属性值变成什么状态或者大小。设置格式一个属性对应一个属性值。如果同时设置多个属性值,需要用逗号连接。如果属性值是数字型的,可以不加单位,如{

2020-05-24 23:14:42 1272

原创 jQuery----attr()方法

在js中设置节点的属性与属性值用:setAttribute(),获得节点的属性与属性值用:getAttribute()在jQuery中用attr()方法获取和设置元素属性attr()方法有四个表达式attr(属性名)获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回undefined )attr(属性名,属性值)设置属性的值 (为所有匹配的元素设置一个属性值。)attr(属性名,函数值)设置

2020-05-17 09:14:44 453

原创 利用 jQuery实现省市县三级联动

在没有接触jQuery之前,写三级联动菜单都是利用原生JavaScript来实现。在接触jQuery之后,感觉上比JavaScript使用起来更加方便。在写demo过程中又接触到了三级联动菜单,换用jQuery来写三级联动。本篇文章中的数据没有使用Ajax,数据不是从数据库动态读取的。只是尝试用jQuery来改变以前用原生JS写三级联动的方法。省市县的数据用三维数组创建,定义一个JS文件来存放。由于数据量较大,此处不做展示。文件名为 ProvinceCity.js。页面元素中设置一个div,id为t

2020-05-17 08:46:56 1168

原创 less的基本使用

less作为css的一种形式的扩展,在现有的CSS语法 上,添加了很多额外的功能。变量在less中利用@符号进行变量的定义@nice-blue: #5B83AD;@light-blue: @nice-blue + #111;#header { color: @light-blue; }混合在less中我们可以定义一些通用的属性集为class,然后在另一个class中去调用这些属性,下面有这样一个class.bordered { border-top: dotted 1px black;

2020-05-10 23:30:39 186

原创 js与jQuery 的区别

javaScript是通过<script></script>标签插入到html页面中,支持当前所有主流浏览器的轻量级的编程语言。jQuery是一个javaScript函数库(javaScript框架),使用jQuery,需要在html页面开始引入jQuery库。<script src="js/jquery.min.js"></script><script src="http://ajax.googleapis.com/ajax/libs/jque.

2020-05-10 23:18:08 200

原创 bootstrap里三种表单布局的方式

Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单创建垂直表单:<!DOCTYPE html><html><head> <title>表单</title> <meta charset="utf-8"> <meta name="viewport" content="width...

2020-05-05 23:06:13 1470

原创 对bootstrap全局样式的一些理解

布局容器类样式:.container 和 .container-flued.container 固定宽度而且具有响应式。.container-flued 自由宽度(100%宽度)这2个class是直接在body标签下建立一个div标签,class等于这2个中的一个。然后其他内容全部写在这个div标签中即可!<!DOCTYPE html><html><...

2020-05-05 22:26:45 216

原创 @media媒体查询以及屏幕自适应内容

@media的作用:媒体查询可以在指定的设备上使用对应的样式替代原有的样式。即告诉浏览器,当满足某条件时,就调用该样式。媒体查询可以用来检测viewport(视窗)的宽度与高度、设备的宽度与高度、横屏还是竖屏以及分辨率。语法:1、内联@media@media not|only mediatype and (expressions) {...}媒体查询由多媒体组成,可以包含一个或多个表...

2020-05-05 21:52:32 2131

原创 Bootstrap—栅格系统

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统。通过定义容器的大小,平分12份,可类比table。一个数据(row)必须包含在.container中,行(row)在水平方向上创建一组列(column),就如同tr中创建td。具体的内容放在column中,而且只有列(column)可以作为行(row)的子元素。12栅格化,每一个列(column)都有15px的左右边距;.co...

2020-05-05 20:47:43 189

原创 CSS3制作立方体的土味相册

在日常的网络生活中,我们经常会看到一些土味相册,尤其是父母辈的朋友圈通过各种链接去制作各种花里胡哨的土味相册集,今天我们就利用css3制作一个立方体的土味相册。制作3D立方体首先需要了解一个在摄影里面的一个重要概念:景深在摄影中镜头焦距越长景深越浅、反之景深越深。主体越近,景深越浅,主体越远,景深越深。而在css3中制作3D图形也有这个类似概念,即perspective:注意:perspe...

2020-04-27 01:20:38 412

原创 css3利用:checked选择器 自定义复选框样式

在css3的学习中,:checked的选择器虽然只适用于单选按钮或复选框,但是它的用途还是有很多的。:checked表示选中的状态。正常的radio或checkbox的样式效果比较单调,在日常的开发过程中并不能够满足用户的需要,所以自定义效果就及其重要。利用:checked选择器自定义复选框样式:<div class="box"> <input type="checkb...

2020-04-26 22:23:54 964

原创 css3 transform属性

Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate等。语法:transform: rotate | scale | skew | translate一、旋转rotaterotate(<angle>) :通过指定的角度参数对原元素指定一个2D rotation(2D 旋...

2020-04-20 09:15:00 241

原创 css3中新增单位rem

在最近阅读美团的源码的时候,我发现了一个新增的单位rem,区别于px,对这个单位进行了一定的研究!像素单位pxpx是Pixel的缩写,就是说像素是指基本原色素及其灰度的基本编码,由 Picture(图像) 和 Element(元素)这两个单词的字母所组成的,如同摄影的相片一样,数码影像也具有连续性的浓淡阶调。css像素又称为虚拟像素、设备独立像素或者逻辑像素,可以理解为直觉像素。比如iPho...

2020-04-17 15:27:02 349

原创 JS调用百度地图——添加基础控件

在大多数的地图应用里面,都添加了各种不同的控件与地图元素进行UI交互,在调用百度地图里面,也提供了非常多不同的控件。不仅可以使用官方提供的普通控件进行设置,而且还可以自己自定义一些控件。JS调用百度地图添加控件平移缩放控件**缩略地图控件:**添加比例尺以及地图类型控件:自定义控件普通控件在百度地图提供的API2.0中,提供了很多不同的控件类供开发者参考。包括基础的控制构造函数、控制锚,导航...

2020-04-13 10:48:44 1765 1

原创 canvas里面save() 和restore()

canvas.save()和canvas.restore()是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的。Canvas相当于一块画布,该类中常用的方法如下:drawRect(RectF rect, Paint paint)drawPath(Path path, Paint paint)drawBitmap(Bitmap bitmap, Rect src, Rect ds...

2020-04-12 22:47:34 459

原创 js调用百度地图API---地图的展示

地图应用在网站构建开发中是非常重要的一个部分,通过调用地图应用可让网站更加丰富,交互性更强。百度地图的JavaScript API,能够支持PC以及移动端基于浏览器的地图应用开发,并且支持H5的特性。基本的地图展示:注意点:为了更好的适应移动端展示,头部应当添加一个meta标签:<meta name="viewport" content="initial-scale=1.0, us...

2020-04-12 22:00:01 1435

canvas飞机大战.zip

利用canvas写的一个经典版飞机大战,canvas画布加上jvasrcipt进行控制,鼠标点击游戏开始,每一帧都是图片的改变。

2020-04-17

2048游戏.rar

纯js写的2048小游戏,web版,键盘上下左右键控制,开始结束游戏画面可以继续精简优化!纯html,css,js

2020-04-17

空空如也

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

TA关注的人

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