js入门系列(4)--控制样式、属性、HTML内容、鼠标事件

  这里主要讲解控制样式、控制属性、控制HTML内容、鼠标事件四大块。

一、控制样式

1.结构:获取标签.style.css样式='样式值'
2.注意事项:

①格式: 样式中有中横线的要去除并且中横线后的第一个首字母要大写。

<style>
    #box{
            width: 100px;
            height: 100px;
    }
</style>
<body>
<div id="box">控制样式</div>
        <script>
            box.style.color="red";
            box.style.borderTop='1px solid blue'; //去除中横线并且首字母大写
        </script>
</body>

  在这个例子中,使用社区方法中的直接通过id名获取标签,修改了div的颜色和边框。
②引号:样式值用单引号和双引号包裹都是一样的

box.style.color="red";
box.style.color='red';  //两者是等价的

二、控制属性

1.操作

①.获取属性:获取标签.getAttribute('属性名')
②.修改属性: 获取标签.setAttribute('属性名','属性值')
③.删除属性:获取标签.removeAttribute('属性名')

2.注意事项

  类也算是标签的属性,所以可以将样式写在一个类中,通过删除类或者增加类来达到样式的变化效果

<style>
    #box{
            width: 100px;
            height: 100px;
    }
    .warp{
            background: red;
            border-radius: 30px;
            text-align: center;
            line-height: 100px;
    }
</style>
<body>
        <div id="box">控制属性</div>
        <script>
            box.setAttribute('class','warp');
            // box.getAttribute('class');
            // box.removeAttribute('class');
        </script>
</body>

三、控制HTML内容

1.什么是HTML内容?

  标签的HTML内容指的就是标签开始和结束的那部分

<div>这就是标签的HTML内容</div>
2.获取HTML内容: a.innerHTML
3.修改HTML内容:a.innerHTML='值'
<body>
        <div id="warp">这是标签的HTML内容</div>
        <script>
            console.log(warp.innerHTML);
            warp.innerHTML='修改了标签的HTML内容';
            console.log(warp.innerHTML);
        </script>
</body>
控制HTML内容.png

四、鼠标事件

1.事件的声明

  获取标签.on+事件类型=function(){代码块}

2.事件源:this

  this指事件源,即鼠标事件前面的标签或者理解为用户当前正在操作的标签

li.onclick=function(){
  this.style.background='red';  //this指用户当前正在操作的li
}
3.点击事件:获取标签.onclick=function(){代码块}

该事件只有当鼠标点击时才会被触发

4.移入事件和移出事件

①移入事件
获取标签.onmouseenter=function(){........}
获取标签.onmouseover=function(){.......}
②移出事件
获取标签.onmouseleave=function(){......}
获取标签.onmouseout=function(){.......}
③注意事项
  1.mouseenter和mouseleave一对配对的鼠标移入和移出事件
mouseover和mouseout是另外一对配对的鼠标移入和移出事件
  2.鼠标的移入和移出事件可以交叉使用,比如mouseenter和mouseout使用,但是不建议这种用法
  3.一般比较常用mouseenter和mouseleave这对事件。因为mouseover和mouseout事件在点击父级事件时,同时会触发子级的事件。

5.改变事件:a.onchange=function(){.....}。仅适用于表单元素。

综合上面的知识点,在此给出下拉菜单的案例

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>事件</title>
        <style>
            *{
                /* 清除样式 */
                margin: 0px;
                padding: 0px;
                list-style: none;
            }
            body{
                /* 设置整个页面的背景色 */
                background: rgba(255, 192, 203, 0.2);
            }
            #warp{
                /* 导航栏的样式 */
                background: white;
                width: 100%;
                height: 42px;
                text-align: center;/* 设置li中的文字水平居中 */
                line-height: 40px;/* 设置li中的文字垂直居中 */
            }
            ul>li{
                /* 一级菜单的样式 */
                float: left;
                width: 80px;
                height: 42px;
                margin-right: 20px;
                cursor: pointer;/* 鼠标移出,出现小手的形状 */
                color: grey;
                position: relative;
                /* o二级菜单绝地定位的参照物 */
            }

            ul>li:hover{
                /* 鼠标经过的颜色变化 */
                color: #ff9d00;
                border-bottom: 2px solid #ff9d00;
            }

            #warpsmall{
                /* 包裹二级菜单的ol的样式 */
                width: 80px;
                cursor: pointer;
                color: grey;
                position: absolute;
                top: 44px;
                background: white;
                text-align: center;/* 设置li中的文字水平居中 */
                line-height: 40px;/* 设置li中的文字垂直居中 */
                display: none;
            }
            #warpsmall>li{
                /* 二级菜单的样式 */
                width: 80px;
                height: 40px;
                cursor: pointer;
                color: grey;
                margin-bottom: 10px;
            }
        </style>
    </head>
    <body>
        <ul id="warp">
            <li>首页</li>
            <li>目的地</li>
            <li>旅游攻略</li>
            <li id="list">去旅游
                <ol id="warpsmall">
                    <li>自由行</li>
                    <li>跟团游</li>
                    <li>自驾游</li>
                </ol>
            </li>
        </ul>
        <script>
            // 通过id名获取标签
            var olist=document.getElementById('list');
            var owarpsmall=document.getElementById('warpsmall');
            
    // 为一级菜单绑定鼠标移入移出事件:鼠标移入,显示二级菜单;鼠标移出,隐藏二级菜单
            olist.onmouseenter=function(){
                owarpsmall.style.display='block';
            }
            olist.onmouseleave=function(){
                owarpsmall.style.display='none';
            }
    // 为二级菜单绑定鼠标移入移出事件:鼠标移入,颜色改变;鼠标移出,回复原来的颜色
            for(var i=0;i<owarpsmall.children.length;i++){
                owarpsmall.children[i].onmouseenter=function(){
                    this.style.color='#ff9d00';
                }
                owarpsmall.children[i].onmouseleave=function(){
                    this.style.color='grey';
                }
            }
        </script>
    </body>
</html>
下拉菜单效果图.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:认识jquery jquery是javascript的类库,具有轻量级,完善的文档,丰富的插件支持,完善的Aj...
    xuguibin阅读 1,726评论 1 7
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,543评论 1 11
  • 本篇博客源地址 总结: 鼠标事件 1.click与dbclick事件ele.click()ele.click(ha...
    ZombieBrandg阅读 684评论 0 1
  • 总结: 鼠标事件 1.click与dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r阅读 1,640评论 2 10
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,370评论 0 8