style: CSS样式操作符 style()操作符用来设置或获取选择集中各DOM元素的CSS样式: selection.style(name[,value[,priority]]) style()操作符有三个参数: name: 样式名称字符串,必须 value:指定样式新的值,可选 priority:优先级,可以是null或字符串"important",可选 读取样式当前值 如果没有指定参数value,那么style()将返回选择集中第一个DOM元素指定样式的 计算值.请注意,这时只…
DOM元素的尺寸和位置 DOM 元素的尺寸 DOM.offsetWidth/offsetHeight: 包括内容区宽/高,padding,border,不包括margin.如果元素的box-sizeing是border-box,那么此时设置的style.width/style.height就是该元素的offsetWidth/offsetHeight.也就是等于内容区的宽/高 + padding + border + 滚动条. DOM.clientWidth/clientHeight: 包括内容区…
JS获取HTML DOM元素有八种方法: 1.根据id获取标签元素: document.getElementById("id名"); 2.根据标签名获取标签列表: document.getElementsByTagName("标签名"); 3.根据className获取标签列表: document.getElementsByClassName("类名"); 4.通过name属性获取标签元素: document.getElementsByName(…
光线投射法 使用three.js自带的光线投射器(Raycaster)选取物体非常简单,代码如下所示: var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2(); function onMouseMove(event) { // 计算鼠标所在位置的设备坐标 // 三个坐标分量都是-1到1 mouse.x = event.clientX / window.innerWidth * 2 - 1; mouse.y =…
今天小颖把之前保存的js特效视频看了一遍,跟着视频敲了敲嘻嘻,用原生js实现一个炫酷的登录页面.怎么个炫酷法呢,看看下面的图片大家就知道啦. 效果图: 不过在看代码之前呢,大家先和小颖看看css中的opacity.transition.box-shadow这三个属性. 1.opacity 作用:设置一个元素的透明度 定义和用法 opacity 属性设置元素的不透明级别. 默认值: 1 继承性: no 版本: CSS3 JavaScript 语法: object.style.opacity=0.5…
LRU算法 Time Limit: 6 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 小Q同学在学习操作系统中内存管理的一种页面置换算法,LRU(LeastRecentlyUsed)算法. 为了帮助小Q同学理解这种算法,你需要在这道题中实现这种算法,接下来简要地介绍这种算法的原理: 1.初始化时,你有一个最大长度为n的空队列,用于暂时存储一些页面的地址. 2.当系统需要加载一个不在队列中的页面时,如果队列已满,则弹出…
在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之间 实现方式不同,常常会造成概念混淆,经过研究之后,这里来进行一个总结. 第一部分:DOM对象 1.1只读属性 所谓的只读属性指的是DOM节点的固有属性,该属性只能通过js去获取而不能通过js去设置,而且获取的值是只有数字并不带单位的(px,em等),如下: 1)clientWidth和client…
第四章:计算属性 为了避免过多的逻辑造成模板的臃肿不堪,可使用计算属性来简化逻辑. 1.什么是计算属性 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <div id="example"> <i…
diff.js列表对比算法 源码分析 npm上的代码可以查看 (https://www.npmjs.com/package/list-diff2) 源码如下: /** * * @param {Array} oldList 原始列表 * @param {Array} newList 新列表 * @param {String} key 键名称 * @return {Object} {children: [], moves: [] } * children 是源列表 根据 新列表返回 移动的新数据,比…
双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向直接后继和直接前驱.所以,双向链表中的任意一个节点开始,都可以很方便的访问它的前驱节点和后继节点. 双向链表的实现 linkednode.js ,里面使用了类的继承extends,使用了super函数. /** * 链表节点,链表中的项,链表中的节点 */ export class Node { constructor(element, next = null) { this.element = element // 链表…