JavaScript-DOM之事件

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路JavaScript-DOM之事件,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

事件三要素

常见的鼠标点击事件

修改元素内容innerText、innerHTML

修改表单元素属性

修改元素样式

事件:得到焦点和失去焦点

显示和隐藏文本框内容

 排他思想

 事件:鼠标经过和鼠标离开


JavaScript使我们有能力创建动态页面,而事件是可以被JS侦测到的行为。

例如:我们声明一个按钮,当用户点击时就会产生点击事件,我们通过对事件的处理,就会对页面产生一些效果。

事件三要素

 三要素:事件源、事件类型、事件处理程序。


<button>点我</button>
<script>
   var button = document.querySelector('button');
   button.onclick = function(){
      alert("hi")
   }
</script>

事件源:button标签
事件类型:onclick 点击事件
事件处理程序:function(){ 处理程序体 }

常见的鼠标点击事件

鼠标事件 触发条件
onclick 鼠标点击左键触发
onmouseover 鼠标经过触发
onmouseout 鼠标离开触发
onfocus 获得鼠标焦点
onblur 失去鼠标焦点
onmousemove 鼠标移动触发
onmouseup 鼠标弹起触发
onmousedown 鼠标按下触发

修改元素内容innerText、innerHTML

element.innerText

编写元素内容时拒用html标签,同时空格也和换行也会去掉,只识别文本。

element.innerHTML

编写元素内容时可以使用html标签,同时保留空格和换行。

两者都是可读写的

两者基本使用

<h1>h1</h1>
<h2>h2</h2>
    <script>
      var t = document.querySelector('h1');
      t.innerText = 'innerText';
      var h = document.querySelector('h2');
      h.innerHTML = 'innerHTML'; 
    </script>

 两者不同之处

    <span class="span1"></span><br>
    <span class="span2"></span>
    <script>
      var t = document.querySelector('.span1');
        //innerText:不识别内部标签写法
      t.innerText = '<strong>innerText</strong>  tab';  

      var h = document.querySelector('.span2');
        //innerText:可以识别内部标签写法
      h.innerHTML = '<strong>innerText</strong>'; 
    </script>

效果

JavaScript-DOM之事件

修改表单元素属性

DOM可以操作表单属性:type,value,checked,selected,disabled

    <div>点击</div>
    <input type="button" id="button" value="点击">
    <script>
        var div = document.querySelector('div');
        div.onclick = function(){
            div.innerHTML = '被点击了'
        }

        var button = document.querySelector('#button')
        button.onclick = function(){
            // button.innerHTML = '被点击了'; //此方式没有效果
        button.value  = '被点击了'; //表单元素特有的方式

        this.disabled = true;//点击后禁用
        }
    </script>

效果 

 JavaScript-DOM之事件

修改元素样式

通过JS可以修改元素的大小,颜色,位置等样式。

 element.style  行内样式操作

    <div>点击</div>
    <script>
        var div = document.querySelector('div');
        div.onclick = function(){
           div.style.background = 'lightpink';//点击后改变背景颜色
           div.style.width = '70px';//点击后宽度变为70px
        }
    </script>

效果 

JavaScript-DOM之事件JavaScript-DOM之事件

element.className  类名样式操作

<style> 
.sty{
   background-color: lightpink;
   width: 70px;
 }
</style>    
    <div>点击</div>
    <script>
        var div = document.querySelector('div');
        div.onclick = function(){
            this.className = 'sty';//将div元素赋予类sty
        }
    </script>

浏览器元素检测 ,效果与上边一样。

 JavaScript-DOM之事件

说明:

若想保留之前类名,可以选择多类名书写方式

this.clasaName = ‘name1 name2 ’ ; //赋予元素多个类

事件:得到焦点和失去焦点

    <input type="text">
    <script>
        //得到焦点和失去焦点
        var input = document.querySelector('input');
        input.onfocus = function(){
            console.log('获得了焦点');//点击文本框
        }
        input.onblur = function(){
            console.log('失去了焦点');//点击外面,光标消失
        }
    </script>

 JavaScript-DOM之事件JavaScript-DOM之事件

显示和隐藏文本框内容

JavaScript-DOM之事件—>JavaScript-DOM之事件

 需求:点击后,文本框内容:’手机’隐藏。

    <input type="text" value='手机'>
    <script>
        var text = document.querySelector('input');
        //获得焦点事件:onfocus
        text.onfocus = function(){
            if(this.value === '手机'){
                this.value = '';
            }
            this.style.color = '#333';           
        }
        //失去焦点事件:onblur
        text.onblur = function(){
            if(this.value === ''){
                this.value = '手机';
            }
            this.style.color = '#999';
        }
    </script>

 排他思想

需求:点击某个盒子,当前盒子变色,其他为原样式。

 JavaScript-DOM之事件—>JavaScript-DOM之事件

    <div class="init"></div>
    <div></div>
    <div></div>
    <div></div>
    <script>
        var divs = document.querySelectorAll('div')//返回伪数组
        for(var i = 0 ; i < divs.length; i++){
            divs[i].onclick = function(){
                divs[0].className = "";
                for(var j = 0 ; j < divs.length;j++){
                divs[j].style.background = '';
                }
                this.style.background = 'lightpink';  
            }  
        }
    </script>

 事件:鼠标经过和鼠标离开

JavaScript-DOM之事件—>JavaScript-DOM之事件

    <div class="init"></div>
    <div></div>
    <div></div>
    <div></div>
    <script>
        var divs = document.querySelectorAll('div')//返回伪数组
        for(var i = 0 ; i < divs.length; i++){
            divs[i].onmousemove = function(){
                divs[0].className = "";
                for(var j = 0 ; j < divs.length;j++){
                divs[j].style.background = '';
                }
                this.style.background = 'lightpink';  
            }  
        }
    </script>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154579.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!