H5学习感悟05

生产级机器学习服务:从Notebook到K8s的MLOps实战指南 机器学习模型部署不是简单封装API,而是涉及模型序列化、服务化架构、特征一致性、容器化、Kubernetes编排与灰度发布的系统工程。核心在于解决训练与推理不一致、服务高可用、低延迟推理、资源弹性伸缩及数据/特征漂移等真实生产挑战。ONNX作为跨框架通用模型格式,Triton/TensorFlow Serving提供高性能推理引擎,Feast等Feature Store保障特征一致性,Docker多阶段构建与K8s健康探针提升稳定性,Istio金丝雀发布控制上线风险。本文聚焦MLOps落地中的关键决策点与魔 阅读详情

js 的组成

  • ECMA Script
  • Bom
  • Dom

Dom 文档对象模型

文档树

获取元素

根据id获取元素

对象是有类型的,getElementById这个方法只能通过document来调用

<script>
    var div_first = document.getElementById("first");
    console.log(div_first);
</script>

根据标签名获取元素

var divs=document.getElementsByTagName("div");//伪数组
获取的是动态集合
获取子代元素
<div id="first">
    <div id="first_inner"></div>
    <div></div>
</div>

<script>

    var div_first = document.getElementById("first");
    var div_first_inner = div_first.getElementsByTagName("div")[0];
    console.log(div_first_inner);
</script>

获取元素的其他方式

getElementsByName
  • 在IE, OP浏览器会查id
  var arr=document.getElementsByClassName("dd");
  console.log(arr)
getElementsByClassName的问题
  • ie9之后才支持
根据选择器获取元素

ie8之后才支持

querySelector
  • id是# 类是.
  • 只能获取一个元素
<div id="first" class="dd">
    <div id="first_inner"></div>
    <div class="dd"></div>
</div>
<script>
    var  div= document.querySelector("#first>.dd")
    console.log(div);
</script>
querySelectorAll
  • 返回的是元素的数组
<div id="first" class="dd">
    <div id="first_inner"></div>
    <div class="dd"></div>
</div>
<script>
   var div= document.querySelectorAll("#first")[0];
   console.log(div);
</script>

注册事件

事件名称事件的作用
onclick点击事件

点击事件

<input type="button" value="确定" id="btn">
<script>
    var  btn=document.getElementById("btn");

    btn.onclick=function () {
        console.log("点击")
    }
</script>
<script>

    var btn=document.getElementById('btn');

    btn.addEventListener('click',function () {
        console.log('======');
    })

    btn.addEventListener('click',function () {
        console.log('111======');
    })

</script>

老版本的ie支持的点击事件

 btn.attachEvent('onclicl',function () {
        console.log('111======');
    });

获取焦点事件和失去焦点事件

<script>
    var text = document.getElementById('text');

    text.onfocus = function () {
        //获取焦点的事件
        if (this.value === "请输入搜索关键字") {
            this.value='';

        }
        this.className='black';

    }

    text.onblur=function () {
        //失去焦点
        if (this.value === '') {
            this.value='请输入搜索关键字';

        }
        this.className='grey';

    }
</script>

addEventListener

  • 可重复注册不会被覆盖
  • 浏览器兼容问题,ie9以后才兼容

点击事件的兼容性写法

/**
 * 注册事件的兼容性写法
 * @param element
 * @param eventName
 */
function addEventListener(element, eventName,fn) {
    if (element.addEventListener) {
        element.addEventListener(eventName,fn);
    }else if (element.attachEvent) {
        element.attachEvent('on'+eventName,fn);
    }else {
        element['on'+eventName]=fn;
    }
}

移除事件

    var btn=document.getElementById('btn');
    btn.onclick=function () {
        console.log('===77===');
        btn.onclick=null;
    }
  • 如果通过addEventListener注册事件有想要移除事件,就不能用匿名函数
    var btn=document.getElementById('btn');
    var fn=function(){
        console.log("===8888===")
        btn.removeEventListener('click',fn);
    }
    btn.addEventListener('click',fn);
  • ie老版本 移除事件的方法
    var btn = document.getElementById('btn');

    function btnClick() {
        console.log('111======');
        btn.detachEvent('onclick', btnClick)
    }

    btn.attachEvent('onclick', btnClick);

移除事件的兼容性写法

/**
 * 移除事件的兼容性写法
 * @param element
 * @param eventName
 */

function removeEventListener(element, eventName, fn) {
    if (element.removeEventListener) {
        element.removeEventListener(eventName,fn);
    }else if (element.detachEvent) {
        element.detachEvent('on'+eventName,fn);
    }else {
        element['on'+eventName]=null ;
    }
} 

事件冒泡

事件由里向外传递

事件的三个阶段

事件发生的阶段eventPhase 值
事件捕获1
执行当前点击的元素(目标阶段)2
事件冒泡3

元素.onclick 是无法进行事件捕获的

事件委托

<script src="../utils/JSUtils.js"></script>
<script>
    my$('ul').addEventListener('click',function (e) {
        //e.target 是真正触发事件的元素对象
        //e 事件参数,也是事件对象
        for (let i = 0; i < my$('ul').children.length; i++) {
            my$('ul').children[i].removeAttribute('class');
        }
        e.target.setAttribute('class','highlight');
        console.dir(e.target.innerText);
    })
</script>

事件对象

eventPhase事件发生的阶段(数值)
target获取真正触发事件的对象(通常指标签对象)老版本ie不兼容
currentTarget注册事件的对象
type事件的类型
clientX,clientY相对于浏览器可视界面的横纵坐标
pageX,pageY相对于文档的横纵坐标ie9之前不兼容

如何阻止事件冒泡

标准dom方法

e.stopPropagation()

老版本ie阻止事件冒泡的方法,谷歌现也支持

e.cancelBubble=true;

t.addEventListener('click',function (e) {
    console.log(e.eventPhase)
    console.dir(e.target);
    console.log(e.type)
    console.dir(e.currentTarget);
    console.log("thir");
    //e.stopPropagation();//阻止事件冒泡
    e.cancelBubble=true;
});
target 兼容写法
   var target=e.target||e.srcElement;

获取浏览器滚动的距离

document.body.scrollLeft横向滚动的距离
document.body.scrollTop纵向滚定的距离

获取页面滚动距离的兼容问题

/**
 * 获取浏览器的滑动距离
 * @returns {{scrollLeft: number, scrollTop: number}}
 */

function getScroll() {
    return {
        scrollLeft: document.body.scrollLeft || document.documentElement.scrollLeft,
        scrollTop: document.body.scrollTop || document.documentElement.scrollTop
    }
}

获取鼠标在页面上的位置的兼容问题

/**
 * 获取鼠标在页面位置
 * @param e  鼠标的时间对象
 * @returns {{pageY: (*|number), pageX: (*|number)}}
 */
function getMousePosition(e) {
    return{
        pageX:e.pageX||e.clientX+getScroll().scrollLeft,
        pageY:e.pageY||e.clientY+getScroll().scrollTop
    };
}

取消默认行为的执行

return false;
e.preventDefault();
e.returnValue=false;ie老版本的方法,谷歌也支持

<a id="a" href="http://www.baidu.com">666</a>
<script>
    my$("a").onclick=function () {
        console.log("====???");
        return false;
    }
</script>
<a id="a" href="http://www.baidu.com">666</a>
<script>
    my$("a").onclick = function (e) {
        console.log("====???");
        e = e || window.event;
        e.preventDefault();
    }
</script>
<a id="a" href="http://www.baidu.com">666</a>


<script>
    my$("a").onclick = function (e) {
        console.log("====???");
        e = e || window.event;
        // e.preventDefault();

        e.returnValue=false;//ie老版本的方法,谷歌也支持
    }
</script>

键盘事件

onkeydown键盘按下
onkeyup键盘按下松开
keyCode键盘的ascll码a=65,48-57是数字
key键值
<input type="text" id="text">

<script>
    my$('text').onkeydown=function (e) {
        console.log("onkeydown",e.keyCode,e.key);
        if ((e.keyCode<48||e.keyCode>57)&&e.keyCode!==8){
            e.preventDefault();
            //e.cancelBubble=true;
        }
    }

    my$('text').onkeyup=function (e) {
        console.log("onkeyup",e.keyCode,e.key);
    }
</script>

属性操作

自定义属性

获取自定义属性

<div id="555" persionid="dd"></div>
<script>
    var  div=document.getElementById("555");
    console.log(div.persionid);//获取不到的
    console.log(div.getAttribute("persionid"));
</script>

设置自定义属性

setAttribute 不仅可以设置自定义属性,也可以设置已有属性

<script>
    div.tag='777';//设置不了
    div.setAttribute('tag','666');
</script>

删除属性

    li.removeAttribute('class')

非表单元素的属性

获取标签的某个属性值

标签.属性名

<a href="www.baidu.com" title="百度" id="link">点击跳转</a>
<img src="../file/5d089c5a851d1-家长订阅.png" alt="图片加载失败" id="img">

<script>

    var link=document.getElementById('link');
    var img=document.getElementById('img')
    console.log(link.id);
    console.log(link.href);
    console.log(link.title);
</script>

获取class属性

className

<button id="btn">影藏</button>

<div id="tag" class="show"></div>


<script>

    var btn = document.getElementById('btn');

    btn.onclick = function () {
        let div = document.getElementById("tag");
        console.log(div.className)
        if (div.className == "show") {
            btn.innerText = "显示"
            div.className = "hidden";
        } else {
            btn.innerText = "影藏"
            div.className = "show"
        }

    }
</script>

表单元素

表单元素的属性

<script>
    var btn = document.getElementById('btn');
    btn.onclick = function () {
        var text = document.getElementById('text');
        if (!text.disabled){
          btn.innerText='启用';
        }else {
            btn.innerText='禁用';
        }
        text.disabled = !text.disabled;
        console.log(text.disabled)
        console.log(text.type)
    }
</script>

如何取消a标签的默认跳转效果

onclick事件里拦截 retrun false

   arr_a[i].onclick=function () {
                p.innerText=arr[i].name;
                console.log(arr[i].name);
                show.src=arr[i].pic;
                return false;//取消a的默认行为
            }

innerText 与innerHTML,textContent 的区别

innerText如果内容中有标签会把标签过滤掉,去掉空格换行旧版的火狐,ie9以下只支持
innerHTML如果内容中有标签会把标签获取到,原封不动获取(包括空格换行)效率较低,因为要解析标签
textContent如果内容中有标签会把标签过滤掉,去掉空格换行

兼容处理

/**
 * 获取标签内容的兼容方法
 * @param element
 */

function getInnerText(element) {
    if (typeof element.innerText === 'string') {
        return element.innerText;
    } else {
        return element.textContent;
    }
}

样式操作

<ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
</ul>

<script>
    var ul = document.getElementById("ul");
    var arr = ul.children;//获得所有的子元素
    for (let i = 0; i < arr.length; i++) {
        if (i%2==0){
            //奇数行
            arr[i].style.backgroundColor='#f00';
        }else {
            arr[i].style.backgroundColor='#0f0';
        }
    }
</script>

设置样式要.style设置

节点操作

##节点与元素的区别

  • 个人认为元素相当于html的标签
  • 节点的含义就比较广泛,包含了元素
节点的类型nodeNamenodeTypenodeValue
元素节点1null
属性节点
文本节点#text3空格,换行,字符
注释节点#comment8注释的内容
  • 换行+空白 属于文本节点

父子节点

获取所有的子节点

作用
childNodes获取所有的子节点包括:元素节点,文本节点,注释节点NodeList
children获取所有的子元素HTMLCollection
hasChildNodes判断某个元素是否含有子节点(包含文本节点)
firstElementChild获得第一个元素节点ie9以上,有兼容问题
<script>
    //获取子节点
    console.log(div.firstChild);
    console.log(div.firstElementChild)
    console.log(div.hasChildNodes());
    console.log(typeof  div.childNodes);//子节点
    console.dir(div.childNodes);
    console.log(typeof  div.children);//子元素
    console.dir(div.children);

</script>

获得第一个元素节点的兼容性写法

/**
 * 获取第一个子元素的兼容性代码
 * @param element
 * @returns {ChildNode | *|Element}
 */

function getFirstElement(element) {
    if (element.firstElementChild){
        return element.firstElementChild;
    }else {
        var arr=element.childNodes;
        for (let i = 0; i <arr .length; i++) {
            if (arr[i].nodeType===1){
                return arr[i];
            }
        }
    }
}

组织a标签跳转的几种写法

   <li class="current"><a href="javascript:void 0;">AA</a></li>
        <li><a href="javascript:void(0);">BB</a></li>
        <li><a href="javascript:undefined;">CC</a></li>

兄弟节点

方法
nextSibling获取下一个兄弟节点
nextElementSibling获取下一个兄弟元素
previousSibling获取上一个兄弟节点
previousElementSibling获取上一个兄弟元素
/**
 * 获取上一个兄弟元素
 * @param element
 * @returns {Node | (() => (Node | null)) | ActiveX.IXMLDOMNode|null}
 */

function getPreviousElementSibling(element) {
    let el=element;
    while (el=el.previousSibling){
        if (el.nodeType===1){
            return el;
        }
    }

    return null;

}


/**
 * 获取下一个兄弟元素
 * @param element
 * @returns {ChildNode | (() => (Node | null)) | ActiveX.IXMLDOMNode | Node|null}
 */
function getNextElementSibling(element) {
    let el=element;
    while (el=el.nextSibling){
        if (el.nodeType===1){
            return el;
        }
    }

    return null;
}

动态创建元素

方式特点
document.write会把整个页面覆盖掉
innerHTML
createElement在内存中创建一个dom对象(推荐)
  • 通常innerHTML的性能比createElement要高
  • 如果使用innerHTML里的子元素注册了事件,又把
    innerHTML=’’,就会导致元素清空,但事件依然绑定,引发内存泄漏
  • removeChild 清空元素并且清除掉元素的事件

document.write innerHTML

<script>
    var div=document.getElementById("tag");
    //document.getElementById("tag").innerHTML="666";
    //document.write("Name<p>hcy</p>");
    var  xhr=new XMLHttpRequest();
    xhr.open('get','./photo.php');
    xhr.send();
    xhr.responseType='json';
    xhr.onreadystatechange=function () {
        if (this.readyState!=4){
            return;
        }
        var array=this.response;
        console.log(array);
        var html=[];
        html.push('<ul>');
        for (let i = 0; i < array.length; i++) {
            html.push("<li class=\"myli\">");
            html.push(array[i].name);

            html.push('</li>');
        }
        html.push('</ul>');
        div.innerHTML=html.join('');
    }
</script>

createElement

<script>
    //在内存中创建一个dom对象
    var p=document.createElement("p");
    p.innerText=666;
    var div=document.getElementById("tag");
    div.appendChild(p);

</script>

动态移除元素

removeChild必须要直接父级的标签删除子标签,不能隔代删除
insertBefore把元素插入到页面的指定位置
replaceChild把当前元素的标签替换
<script>
    //在内存中创建一个dom对象
    var p=document.createElement("p");
    p.innerText=999;
    var div=document.getElementById("tag");
    //div.appendChild(p);
    div.insertBefore(p,div.children[0]);

</script>
<script>
    //在内存中创建一个dom对象
    var p=document.createElement("p");
    p.innerText=999;
    var div=document.getElementById("tag");
    //div.appendChild(p);
    div.replaceChild(p,div.children[0]);

</script>
H5学习帮助文档 H5是一系列制作网页互动效果的技术集合,即H5就是移动端的web页面。而H5游戏,你可以看作是移动端的web游戏,无需下载软件即可体验,这就是H5在传播上的优势。对于许多手游玩家来说,H5可能是个十分陌生的名词,其实H5就是HTML的高级版本,目前H5技术正在不断完善。 立即下载

相关推荐

支付系统保证可靠性的秘诀 ----- 订单的补偿和补单

文章目录WHAT? 前言WHY? 为什么要用多级缓存?HOW 怎么做?方案 版本1:数据库存储专线配置通过优先级进行动态上下线方案 版本1 劣势:方案 版本2 :本地缓存替代数据库方案 版本2 劣势:方案 版本3:分布式缓存做自动补偿方案 版本3 总结:Where 分布式多级缓存还能用在哪些地方?总结 WHAT? 前言 刚入职场的时候觉得支付宝等第三方支付系统好强大,要保证这么多的交易不能错,也不能重复还要保证正确的扣钱,直到后面接触订单系统以及第三方支付公司的核心交易系统后才真正窥探到了支付系统的核心

boboaisisi的专栏 3534

div滚动条怎么设置_基于 React 的滚动条方案

最近组件库有多了一个组件:滚动条,你可能会问: 为什么还要再造一个轮子?IScroll不好用吗?那还有 Better-Scroll啊?这两个库都不错,自己平时也用,之所以要做,原因只有两个:1、不符合 React 的范式:ui = f(state) 这两个库都是跨平台的,都是直接操作 dom 的,跨平台不是不好,肯定是好,但是在 React 的世界,要处理状态的同步,通常都是通过状态或属性来控制,...

weixin_39898150的博客 1502

光学薄膜设计入门:Essential Macleod中文版从安装到实战全攻略

本文为光学薄膜设计初学者提供Essential Macleod软件从安装部署到实战应用的全流程中文指南。详细解析了软件核心界面、材料管理及工作流程,并通过一个完整的宽带增透膜设计实例,手把手演示膜系构建、优化与分析方法,帮助用户快速掌握这一业界标杆工具,跨越理论与实操的门槛。

weixin_29309475的博客 980

H5学习感悟01

.include 和 require 的区别 (php载入文件的四种方式) include 的错误级别较轻(warning),不会影响代码的执行。碰到一次,执行一次 include_once 只执行一次 载入文件不存在,只会报⚠️ require 要求较高(Fatal error),如果代码出错不再往下执行,碰到一次,执行一次 require_once 只执行一次 一旦被载入的文件不存在,就...

SpringYang 919

【华为OD技术面-手撕算法代码真题】- 最长公共前缀

🌟 强烈推荐:华为OD技术面试手撕算法代码真题 🌟大家好!今天我给大家推荐一份备受赞誉的华为OD技术面试手撕算法代码真题。所有题目均为华为od实际面试过程中出现的算法代码真题。

算法大师! 4883

SAP生产订单技术性完成(TECO)操作指南与实战应用

生产订单技术关闭操作指南主要包括单笔和批量关闭两种方式,通过CO02/COHV事务码完成。

m0_47402127的博客 1932

学习h5第一天的心得

H5的根标签是 是标题。是链接;是样式。加上

chjxcl8888的专栏 2250

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6275

学习h5的一丢丢感悟

和别的科目相比,前端更需要多联系,需要多掌握,而后端则需要我们更缜密的心思,更清晰的头脑,更灵活的思维,用自己的努力练习去实现美好的网页页面哦也

qq_35696488的博客 789

图神经网络实战(8)——图注意力网络(Graph Attention Networks, GAT)

图注意力网络 (Graph Attention Networks, GAT) 是对图卷积网络 (Graph Convolutional Network, GCN) 的改进,提出了一种通过自注意力 (self-attention) 过程计算的加权因子,而不是使用静态的归一化系数。在本节中,我们介绍了 GAT 架构。通过从线性变换到多头注意力的四个主要步骤,了解了 GAT 的工作原理,并在 NumPy 中从零开始构建了 GAT 层。最后,将 GAT 模型应用于 Cora 和 CiteSeer 数据集。

盼小辉丶的博客 1万+

YOLOv13手把手添加YOLOv13注意力机制:Biformer(BiLevelRoutingAttentio)YOLOv13双层路由注意力 革命性的高效注意力机制深度解析YOLOv13YOLOv1

YOLOv13 BiLevelRoutingAttention是一种革命性的高效注意力机制,YOLOv13通过双层路由策略显著降低了计算复杂度。YOLO它将注意力计算分为区域级路由和令牌级注意力两个层次,前者选择最相关的K个区域,后者仅在选定区域内执行注意力计算。这种设计借鉴了人类视觉系统的分层处理机制,在保持长距离依赖建模能力的同时,将复杂度从O(N²)降至O(NK + P⁴)。该机制还集成了可微分路由、自适应参数和LePE位置编码等创新技术,YOLOv13 YOLOv13 YOLOv13 YOLOv13

FJN110的博客 659

H5学习感悟03

AJAX <script> //XMLHttpRequest xhr = new XMLHttpRequest(); //先注册事件,这个事件不只是响应的时候触发,状态改变的时候的也触发 xhr.onreadystatechange = function () { console.log(this.readyState); ...

SpringYang 610

3D结构光 vs TOF——手机厂商为何选择TOF方案?

3D视觉感知技术路线分析:结构光与TOF对比 3D视觉感知领域存在结构光和TOF两大主流技术。结构光基于三角定位法,精度高(毫米级)但工作距离短(<1.5米),适合人脸识别等近距离场景;TOF通过测量光脉冲飞行时间计算深度,精度中等(厘米级)但工作距离长(0.5-5米+),更适合AR导航等中远距离应用。手机厂商选型时考虑:前置认证选择结构光(如苹果FaceID),后置场景倾向TOF(安卓阵营),因后者更适配全面屏设计、环境适应性强且成本优势明显。两种技术互补共存,共同推动3D感知应用发展。

致力于lidar应用开发 111

uniapp学习笔记:一套代码,运行到7个平台(一)

前两天总结了一下小程序的一些开源的框架之后,有大佬在底下留言评论补充,uniapp没有写上,去年有小伙伴把我拉到这个群聊里面去了,当时还没有怎么了解这个框架,当时日常看他们聊天似乎很厉害的样子,今天,小小的体验了一下开发文档。 文档:https://uniapp.dcloud.io/ uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发...

祈澈菇凉 1007

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

h5页面如何切图_html5怎么切图

前端技巧之如何切图注:本篇文章基于HTML5/CSS3,较少考虑浏览器兼容性(兼容性查询可以见caniuse.com网站),需要读者注意。前端开发≠切图,但前端开发需要会切图,切图是衔接PSD与HTML静态页面的桥梁。作为需要涉猎前端的后端工程师,在切图中需要掌握如下的知识:如何评价切图切的好切图质量的好坏评...文章激酶2016-01-086394浏览量用Markdown格式写一份前端简历1. ...

weixin_39613188的博客 1026

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于nodejs+vue古诗词学习系统[程序+论文+开题] 计算机毕业设计

本研究的意义在于,首先,通过构建古诗词学习系统,能够有效拓宽古诗词的传播渠道,促进传统文化的现代化传承;其次,系统内置的诗词分类、年级篇目划分等功能,能够满足不同年龄层学习者的个性化需求,提升学习效率与效果;再者,借助“今日推荐”等创新设计,引导用户每日接触新诗词,培养持续学习的习惯,加深对中国古典文化的理解与感悟;最后,该系统的开发与应用,也为教育领域的技术融合提供了实践案例,推动了教育信息化的发展进程。

晓君学姐--毕设程序 1223

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

关于自己

css3China诞生于2014年1月,它既不是中国权威组织的官方网站,也不是业界大牛的网站,目前只是绿贼用来记录自己工作和生活的个人博客而已。希望自己把平时学习和积累的点点滴滴能够在这里沉淀下来。 俗话说,不积跬步无以至千里,不积小流无以成江海。个人博客主要以Css3和移动端Web前端开发为主要沉淀和分享内容,也会夹杂一些五花八门,看似没关系,可确实是原汁原味出自绿贼的小小...

diebi9395的博客 197

这些公众号让我的学习简单又高效

今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,在工作、生活节奏超快的今天,想要不断提升自我,利用碎片化阅读学习是你最佳选择,这些号在行业里深耕已久,...

hitchenghengchao的博客 1203

前端面试每日3+1(周汇总2019.05.12)

每周末会汇总一次。 《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受! 学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题(死磕自己)。 希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。 欢迎大家到Issues交流,鼓励P...

weixin_33794672的博客 101

前端 el-checkbox label 换行_前端面试每日3+1(周汇总2019.05.12)

每周末会汇总一次。《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。前端面试每日3+1题,以面试题来驱动学习,每天进步一点!让努力成为一种习惯,让奋斗成为一种享受!学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题(死磕自己)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。欢迎大家到Issues交流,鼓励PR,感谢Star,大家有...

weixin_39587010的博客 225

ITeye 博客关注点3

网名 关注点 LEVEL 关注日期 javafan_303 zookeeper|事务|电商|收藏 IMP 2017-01-12 knight kafka|Spring|java|设计模式   2017-01-13 jackyrong Java|Spring|安全|数据库|Linux IMP 2017-01-16 hw1287 Java We...

iteye_6973的博客 201

30句2018年精彩走心的文案,没事可以学习下,了解其中的文字意义

文章来源:广告界(ID:guanggaojie007) 每到年末总免不了盘点回望,用各异的方式来记录岁月、留住时光。在这其中,文案无疑是一个不错的载体。 回首即将过去的2018年,总有一些文案让你感同身受,触碰到内心的柔软。今天广告界就整理30句2018年精彩走心的文案。它们有品牌案例、综艺语录、借势文案……形式各不相同,却总有一句能戳中你。(注:排名不分先后) ▼ 01 找得到生活的人, 在哪个城市都能找到家的感觉。 ——支付宝 文案来自支付宝生成的「十年生活账本」。品牌通过记录最近十

王怕怕升职记 3220

上线2周流水4万!这“破”游戏凭什么成了流量收割机?强迫症的“电子布洛芬”让人上头!

我随口回复到,关卡编辑是亮点,已经有开发者上线了十二生肖、新年祝福等素材的关卡,要知道这样的关卡视频直接可用于买量视频的哈!的确,在这个 3D 大作横行、特效满天飞的时代,只有黑白线条的箭头游戏,看起来简直是一股“清流”(或者说“泥石流”)。在我们的专属用户交流群里,已经有开发者,通过KK的箭头编辑器的加持,快速上线了自己的产品!顾名思义,“电子布洛芬”的作用并不是说它能在物理上,对人的身体止疼,但它能对。好的关卡设计,玩家在经历了多次失败尝试后,终于找到唯一解法的那一刻,

奎特尔星球 893

推荐几个我扩充视野常常看的公众号

今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,在工作、生活节奏超快的今天,想要不断提升自我,利用碎片化阅读学习是你最佳选择,这些号在行业里深耕已久,...

Pysamlam的博客 373

公众号互推还是要的,要不怎么让更多人看到可爱的我呢?

今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,在工作、生活节奏超快的今天,想要不断提升自我,利用碎片化阅读学习是你最佳选择,这些号在行业里深耕已久,...

程序员吴小胖 184

推荐几个奇葩的技术公众号

今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,在工作、生活节奏超快的今天,想要不断提升自我,利用碎片化阅读学习是你最佳选择,这些号在行业里深耕已久,...

奎特尔星球 321
上一篇: H5学习感悟01
下一篇: H5学习感悟02
泡温泉的咸鱼
博客等级 码龄11年 39粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值