JAVASCRIPT DOM编程艺术读书笔记

第十一章 HTML5

  创建灰度图片,但是在IE中可以执行,在Chome中却不行,getImageData报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function convertToGS(img) {
    //Modernizr是一个Javascript库,检测浏览器是否支持canvas
    if(!Modernizr.canvas) return;
 
    //保存原始的彩色版
    img.color = img.src;
 
    //创建灰度版
    img.grayscale = createGSCanvas(img);
 
    img.onmouseover = function () {
        this.src = this.color;
    }
 
    img.onmouseout = function () {
        this.src = this.grayscale;
    }
 
    img.onmouseout();
}
 
function createGSCanvas(img) {
 
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
 
    var ctx = canvas.getContext("2d");
 
    ctx.drawImage(img,0,0);
 
    //获取图片区域的数据,data属性返回一个对象,包含了image对象的图片数据 即r  g  b A(alpha通道)
    var img_data = ctx.getImageData(0,0,img.width,img.height);
 
    for(var i =0; i < img_data.data.length; i += 4)
    {
        var r = img_data.data[i];
        var g = img_data.data[i + 1];
        var b = img_data.data[i + 2];
 
        img_data.data[i] = img_data.data[i + 1] = img_data.data[i + 2] = (r + g +b)/3;
    }
 
    ctx.putImageData(img_data,0,0);<br>//返回图片内容作为新的灰度图片的源
    return canvas.toDataURL();
}


HTML5 video  自定义控件 部分js代码

function addControls(vid) {

    vid.removeAttribute("controls");  //移除浏览器默认的控件 var controls = document.createElement("div");
    controls.setAttribute("class","controls"); var play = document.createElement("button");
    play.setAttribute("title","play"); // play.innerHTML = '&#25BA;'; play.innerHTML = '&#x25BA;';  //note!!!

    controls.appendChild(play);

    vid.parentNode.insertBefore(controls,vid);
    
    play.onclick = function () {if(vid.ended)
            vid.currentTime = 0; if(vid.paused)
        {
            vid.play();
        } else {
            vid.pause();
        }
    } //利用play pasue ended事件来监控 vid.addEventListener("play",function () {  //当视频正在播放时 会触发play事件 跑这个函数
        play.innerHTML = '&#x2590;&#x2590;';
        play.setAttribute('paused', true);

    },false);      //第三个参数为false 说明由外往里获取  true的话说明是由里王外获取

    vid.addEventListener("pause",function () {  //当视频暂停时 会触发pause事件 跑这个函数
        play.removeAttribute('paused');
        play.innerHTML = '&#x25BA;';

    },false);

    vid.addEventListener("ended",function () {
        vid.pause();
    },false);

}

HTML5 表单

    为了应对不兼容浏览器,可以进行兼容性检查 可以使用inputtypes.type属性    比如 if(!Modernizr.inputtypes.date) --检查生成日期的脚本  if(!Modernizr.inputtypes.placeholder) --检查生成占位符的脚本 

onFocus事件就是当光标落在文本框中时发生的事件。

onBlur事件是光标失去焦点时发生的事件。

#笔记##读书笔记#
全部评论

相关推荐

老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本&nbsp;专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴&nbsp;快手&nbsp;去哪儿&nbsp;小鹏汽车&nbsp;不知名的一两个小厂其中字节13场&nbsp;两次3面挂&nbsp;两次2面挂&nbsp;一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂&nbsp;最后一次到录用评估&nbsp;至今无消息滴滴三面完&nbsp;没几天挂了&nbsp;所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通&nbsp;至今无消息小鹏汽车hr&nbsp;至今无消息美团2面挂&nbsp;然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂&nbsp;这个是我菜,面试官太牛逼了拼多多二面挂&nbsp;3道题也全写了&nbsp;也没问题是回答不出来的&nbsp;泡一周后挂腾讯面了5次&nbsp;一次2面挂&nbsp;三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务