JS:day04

一、HTML DOM - 事件

DOM - 事件 链接

1、onload 和 onunload 事件

当用户进入或离开页面时,会触发 onload 和 onunload 事件。

<p id="p">hello world</p>

<script>
    var p = document.getElementById("p");
    window.onload=function(){
        p.style.color="red";
    }
</script>

2、onchange 事件(input)

当用户改变输入字段的内容时

<input type="text" id="input"/>

<script>
    var input = document.getElementById("input");
    input.onchange = function(){
        this.style.color="red";
    }
</script>

3、onfocus 获取焦点 和 onblur 移除焦点

<input type="text" id="input"/>

<script>
    var input = document.getElementById("input");
    /*onfocus获取焦点*/
    input.onfocus=function(){
        this.style.backgroundColor="pink";
    };
    /*onblur移除焦点*/
    input.onblur=function(){
        this.style.backgroundColor="red";
    }
</script>

4、onmouseover 和 onmouseout 事件

可用于在鼠标指针移动到或离开元素时

<style>
        div{
            width:100px;
            height:100px;
            background-color: red;
        }
    </style>

<div id="div">是</div>

<script>
    var div = document.getElementById("div");
    div.onmouseover=function(){
        this.innerHTML="否";
    };
    div.onmouseout=function(){
        this.innerHTML="是";
    }
</script>

5、onmousedown 和 onmouseup 事件

鼠标按钮被点击时,触发 onmousedown 事件,当鼠标按钮被松开时,触发 onmouseup 事件

<style>
        div{
            width:100px;
            height:100px;
            background-color: red;
        }
 </style>

<div id="div"></div>

<script>
    var div = document.getElementById("div");
    div.onmousedown=function(){
        this.style.backgroundColor="pink";
    };
    div.onmouseup=function(){
        this.style.backgroundColor="red";
    }
</script>

二、图片库demo

<h1>图片库</h1>
<ul id="imageGallery">
    <li>
        <a href="images/image_1.png" title="01">第一张</a>
    </li>
    <li>
        <a href="images/image_2.png" title="02">第二张</a>
    </li>
    <li>
        <a href="images/image_3.png" title="03">第三张</a>
    </li>
    <li>
        <a href="images/image_4.png" title="04">第四张</a>
    </li>
</ul>
<!--![](images/dizhi_1.png)-->
<!--<p id="p">换掉我</p>-->
<script>
    var placeholder = document.createElement("img");
    placeholder.setAttribute("id","placeholder");
    placeholder.setAttribute("src","images/dizhi_1.png");
    placeholder.setAttribute("alt","占位符");
    var p = document.createElement("p");
    p.setAttribute("id","p");
    var text = document.createTextNode("换掉我");
    p.appendChild(text);

    var body = document.getElementsByTagName("body")[0];
    body.appendChild(placeholder);
    body.appendChild(p);

    function prepareGallery(){
        var imageGallery = document.getElementById("imageGallery");
        var li = imageGallery.getElementsByTagName("a");
        for(var i=0;i<li.length;i++){
            li[i].onclick = function(){
                show(this);
                return false;
            }
        }
    }
    prepareGallery();

    function show(pic){
        var href = pic.getAttribute("href");
        var placeholder = document.getElementById("placeholder");
        placeholder.setAttribute("src",href);
        var title = pic.getAttribute("title");
        var p = document.getElementById("p");
        p.firstChild.nodeValue=title;
    }
</script>

insertAfter函数

nextElementSibling:兄弟元素

<ul>
    <li id="one">1</li>
    <li id="two">2</li>
    <li>3</li>
</ul>

<script>
    var one = document.getElementById("one");
    var p = document.createElement("p");
    var text = document.createTextNode("hello");
    p.appendChild(text);

    insertAfter(p,two);

    function insertAfter(newElement,targetElement){
//                得到目标元素的父节点
        var parent = targetElement.parentNode;
//                如果目标元素是 parent 最后一个就在直接添加新元素
        if(parent.lastChild == targetElement){
            parent.appendChild(newElement);
//                 否则,就在 parent 前面的兄弟之后添加新元素
        }else{
            parent.insertBefore(newElement,targetElement.nextElementSibling);
        }
    }

</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,049评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,478评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,109评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,097评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,115评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,280评论 1 279
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,748评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,398评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,553评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,440评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,487评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,176评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,750评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,821评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,049评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,559评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,150评论 2 341

推荐阅读更多精彩内容

  • 1.获取非行间样式 //获取非行间css样式 function getStyle(obj,attr){//获取...
    二狗的小仙女阅读 1,130评论 0 0
  • 通过 HTML DOM(文档对象模型),可访问 JavaScript HTML 文档的所有元素。 JavaScri...
    _借东西的小人阅读 224评论 0 2
  • 0 总结 本书的JS 第一章有讲语法有挺多常见的坑点和原理解释很不错 第二章DOM编程讲述了挺多API 第三章事件...
    王钰峰阅读 1,482评论 0 9
  • 警告请使用 document.write() 仅仅向文档输出写内容。如果在文档已完成加载后执行 document....
    hx永恒之恋阅读 619评论 0 10
  • 一般事件 事件 浏览器支持 描述 onClick 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDbl...
    逍遥g阅读 229评论 0 0