22 样式操作

148 阅读1分钟

需求:网页开关灯

<style>
   .cls{
       background: black;
   }
</style>
<body>
<input type="button" value="开/关灯" id="btn">
<script> //获取body标签  document.body 拿到body标签
   var btn = document.getElementById("btn");
   btn.onclick = function(){
   document.body.className = document.body.className != "cls" ? "cls" : ""; //用三元运算符进行判断
   }
</script> 
</body>

需求:点击按钮禁用文本框

<input type="button" value="点击禁用文本框" id="btn">
<input type="text" value="来输入文本" id="txt">
<script>
    var btn = document.getElementById("btn");
    btn.onclick = function(){
        document.getElementById("txt").disabled = true;
    }
</script>

需求:点击按钮修改列表背景颜色

<input type="button" value="点击修改颜色" id="btn">
<ul id="uu">
    <li>鸣人</li>
    <li>佐助</li>
    <li>小樱</li>
</ul>
<script>
    var btn = document.getElementById("btn");
    btn.onclick = function(){
        document.getElementById("uu").style.backgroundColor = "pink";
    }
</script>

需求:阻止a链接跳转

 <!-- 方案1 -->
 <a href="http://www.baidu.com" onclick="alert('被点击了')" return false>百度</a>
<!-- 方案2 -->
<a href="http://www.baidu.com" id="ak">百度</a>
<script>
    var ak = document.getElementById("ak");
    ak.onclick = function(){
        alert("我被点击了");
        return false;
    }
</script>

需求:点击小图变大图

<a href="01.jpg" id="ak"><img src="01-small.jpg" alt=""></a>
<img src="" alt="" id="big">
<script>
    var ak = document.getElementById("ak");
    ak.onclick = function(){
        // 先获取到big的src再把自身ak的图片地址赋值给big
        document.getElementById("big").src = this.href;
        return false;
    }
</script>

封装一个获取id的函数publick.js

function my$(id){
  return document.getElementById(id);
}

需求:点击隔行换色

<body>
<input type="button" value="隔行换色" id="btn">
<ul id="uu">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
</ul>
<script src="publick.js"></script> //调用外部封装函数
<script>
//实现奇红偶黄
my$("btn").onclick = function(){
// 获取到所有的li标签
var list = my$("uu").getElementsByTagName("li");
// 循环遍历
for(var i = 0; i < list.length; i++){
    // 判断
    if(i % 2 == 0){ //数组下标从0开始
        list[i].style.backgroundColor = "red";
    }else{
        list[i].style.backgroundColor = "yellow";
    }
  }
}
</script>
</body>

需求:列表隔行换色

<style>
    ul{
        list-style: none;
        cursor: pointer;  /*小手样式 */
    }
</style>
<body>
 <ul id="uu">
    <li>雪花</li>
    <li>乌苏</li>
    <li>青岛</li>
    <li>百威</li>
    <li>乐堡</li>
 </ul>
  <script>
    //获取到所有的li标签
    var list = document.getElementsByTagName("li"); //伪数组
    //循环
    for(var i = 0; i < list.length; i++){
        //鼠标经过  onmouseover
        list[i].onmouseover = function(){
            this.style.backgroundColor = "pink";
        }
        //鼠标离开  onmouseout
        list[i].onmouseout = function(){
            this.style.backgroundColor = "";
        }
    }
  </script>
</body>

通过name名称来获取元素

<body>
<input type="button" value="显示效果" id="btn"><br />
<input type="text" value="通过name获取元素" name="name1"><br />
<input type="text" value="通过name获取元素" name="name2"><br />
<input type="text" value="通过name获取元素" name="name3"><br />
<input type="text" value="通过name获取元素" name="name4"><br />
<input type="text" value="通过name获取元素" name="name1"><br />
<input type="text" value="通过name获取元素" name="name1"><br />
<input type="text" value="通过name获取元素" name="name1"><br />
<script src="publick.js"></script>
<script>
    my$("btn").onclick = function(){
        // 通过name属性值获取元素--集合
        var inputs = document.getElementsByName("name1");
        // 循环遍历
        for(var i = 0; i < inputs.length; i++){
            inputs[i].value = "我们又学会一种获取元素的方式"
        }
    }
</script>

通过类样式的名字来获取元素

<style>
    div{
        width: 300px;
        height: 50px;
        background: pink;
        margin-top: 10px;
    }
    .cls{
        background: skyblue;
    }
</style>
<body>
<input type="button" value="显示效果" id="btn">

<p class="cls">这是第一个p标签</p>
<p>这是第二个p标签</p>

<span class="cls">这是第一个span</span><br />
<span >这是第二个span</span><br />

<div class="cls">这是第一个div</div>
<div>这是第二个div</div>

<script src="publick.js"></script>
 <script>
    // 需求:点击按钮设置背景颜色 
    // getElementsByClassName()----H5 
    my$("btn").onclick = function(){
        // 根据类样式的名字获取元素---通过class来获取元素
        var objs = document.getElementsByClassName("cls");//(这个cls前面没有点) 是一个集合
        // 循环遍历
        for(var i = 0; i < objs.length; i++){
            objs[i].style.backgroundColor = "#096";
        }
    }
 </script>
</body>

通过其他方式(选择器)来获取元素

  <style>
    .cls{
        background: pink;
    }
  </style>
<body>
<input type="button" value="显示效果" id="btn">
<p class="cls">这是第一个p标签</p>
<p>这是第二个p标签</p>
<div class="cls">这是第一个div</div>
<div>这是第二个div</div>
  <script>
    var objs = document.querySelectorAll(".cls");//集合,是一个伪数组
    // 遍历循环
    for(var i = 0; i < objs.length; i++){
        objs[i].style.backgroundColor = "#096";
    }
  </script>
</body>

总结:获取元素方式

1.根据id获取元素

document.getElementById("id的属性值")

2.根据标签获取元素

document.getElementsByTagName("标签的名字")

3.根据name的属性值获取元素

document.getElementsByName("name属性值")

4.根据类样式的名字获取元素

document.getElementsByClassName("类样式名字")

5.根据选择器获取元素

document.querySelector("选择器")选择一个元素
document.querySelectorAll("选择器")返回的是集合

6.专门获取body标签

document.body

7.专门获取html标签

document.documentElement

8.设置元素样式方式

对象.style.属性 = 值
对象.className = 值