JavaScrip 修改样式属性 js简单案例

简介: JavaScrip 修改样式属性 js简单案例

1. 修改样式属性(小)


修改样式属性有两种方式,改动小的话直接就是.style进行修改就可以了,改动大的话,就是用类选择器进行修改。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            margin: 100px auto;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div></div>
    <script>
        var div = document.querySelector('div');
        div.onclick = function() {
            this.style.backgroundColor = 'black' ;
        }
    </script>
</body>
</html>


2. 淘宝关闭二维码案例


点击二维码的关闭按钮之后,将样式display:none 就可以了。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./images/taobao.png" alt="">
        <i class="close">关闭</i>
    </div>
    <script>
        // 获取元素
        var box = document.querySelector('.box');
        var close = document.querySelector('.close');
        close.onclick  = function() {
            box.style.display = 'none' ;
        }
    </script>
</body>
</html>


3. 循环精灵图


改变精灵图的位置就可以实现


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        li {
            list-style-type: none;
        }
        .box {
            width: 250px;
            margin: 100px auto;
        }
        .box li {
            float: left;
            width: 24px;
            height: 24px;
            background-color: pink;
            margin: 15px;
            background: url(images/sprite.png) no-repeat;
        }
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <script>
        var lis = document.querySelectorAll('li');
        for ( var i = 0 ; i < lis.length ; i ++ ) {
            var index = i * 44 ;
            lis[i].style.backgroundPosition = '0 -'+ index+'px';
        }
    </script>
</body>
</html>


4. 显示隐藏文本框内容案例


文本框里面的文字全是value属性,所以只要是修改value里面的内容就可以,使用到的技术就是获得焦点和失去焦点这两个属性。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input {
            color: #999;
        }
    </style>
</head>
<body>
    <input type="text" value="手机">
    <script>
        // 获取元素
        var text = document.querySelector('input') ;
        // 注册事件 得到焦点
        text.onfocus = function () {
            // console.log('得到了焦点');
            if (text.value == '手机') {
                this.value = '' ;
            }
            // 获得焦点需要把文本框里面的文字颜色变黑
            this.style.color = '#333' ;
        }
        // 注册事件 失去焦点
        text.onblur = function () {
            // console.log('失去了焦点');
            if (text.value == '') {
                this.value = '手机' ;
            }
            this.style.color = '#999' ;
        }
    </script>
</body>
</html>


5. className修改样式属性


如果样式多的话,就不利于我们直接使用.style来进行修改,所以这个就是直接等价于给某个盒子加上了一个类名 等价于 class = “xxx” ,区别就是这个不显示,只有触发事件时候才进行显示。注意的是,如果只写一个新的类名的话,就得样式就会消失,只存在一个类名效果,如果想层叠的话,就是将两个类名都写到。


<!-- calssName 就相当于给盒子加了一个类名一样。区别就是在于需要绑定操作进行触发之后才能显示效果 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        .change {
            width: 300px;
            height: 300px;
            background-color: black;
        }
    </style>
</head>
<body>
    <div>你好</div>
    <script>
        var change = document.querySelector('div');
        change.onclick = function () {
            // 单独写一个的话会层叠掉原先的属性
            this.className = 'change' ;
            //  旧的和新的写到一起的话就会使得属性进行叠加处理
            this.className = 'first change' ;
        }
    </script>
</body>
</html>


6. 密码框提示信息案例


效果就是当输入完密码,失去焦点的时候,就会进行一个判断,使用input.value.length判断密码的长度大小,并且使用类名修改属性,使用.innerHTML修改文字属性。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 600px;
            margin: 100px auto;
        }
        .message {
            display: inline-block;
            font-size: 12px;
            color: #999;
            background: url(images/mess.png) no-repeat left center;
            padding-left: 20px;
        }
        .wrong {
            color: red;
            background-image: url(images/wrong.png);
        }
        .right {
            color: green;
            background-image: url(images/right.png);
        }
    </style>
</head>
<!-- 大体就是失去焦点之后,要进行判断密码的value的length是否满足需求,然后更改相应的样式  更改样式的时候使用的是className  -->
<body>
    <div class="register">
        <input type="password" class="ipt">
        <p class="message">请输入6~16位密码</p>
        <script>
            var ipt = document.querySelector('.ipt');
            var message = document.querySelector('.message');
            ipt.onblur = function () {
                if (this.value.length < 6) {
                    message.className = 'message wrong';
                    message.innerHTML = '您输入的位数不对,要求是6~16位';
                } else {
                    message.className = 'message right';
                    message.innerHTML = '您输入的正确';
                }
            }
        </script>
    </div>
</body>
</html>


7. 京东关闭广告案例


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            position: relative;
        }
        .luzhou {
            width: 100%;
        }
        .close {
            position: absolute;
            top: 0px;
            right: 0px;
            width: 30px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./images/luzhou.jpg" alt="" class="luzhou">
        <img src="./images/close.jpg" alt="" class="close">
    </div>
    <script>
        var box = document.querySelector('.box') ;
        var close = document.querySelector('.close') ;
        close.onclick = function() {
            box.style.display = 'none' ;
        }
    </script>
</body>
</html>


8. 开关灯


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button >开关灯</button>
    <script>
        // 获取元素
        var btn = document.querySelector('button');
        var body = document.body;
        // 注册 + 函数
        var flag = 0 ;
        btn.onclick = function () {
           if( flag == 0 ) {
            body.style.backgroundColor = 'black' ;
            flag = 1 ;
           } else {
            body.style.backgroundColor = 'white' ;
            flag = 0 ;
           }
        }
    </script>
</body>
</html>


9. 世纪佳缘案例


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .psw {
            color: #999999;
        }
        .dianji {
            border: 1px solid pink;
            outline: none;
        }
        .shiqu {
            border: 1px solid #aaa;
            outline: none;
            color: #999999;
        }
    </style>
</head>
<body>
    <input type="text" class="psw" value="邮箱/ID/手机号">
    <script>
        // 获取元素
        var psw = document.querySelector('input') ;
        psw.onfocus = function () {
            console.log('获得焦点');
            this.value = '' ;
            psw.className = 'dianji' ;
        }
        psw.onblur = function () {
            console.log('失去焦点');
            this.className = 'shiqu' ;
            if(this.value == '') {
                this.value = '邮箱/ID/手机号' ;
            }
        }
    </script>
</body>
</html>


相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
4月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
1月前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
1月前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
2月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
83 4
|
2月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器
29 1
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
33 1
JavaScript基础知识-枚举对象中的属性
|
2月前
|
移动开发 前端开发 JavaScript
JavaScript 中的样式切换方法
JavaScript 中的样式切换方法
18 0
|
2月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
23 0
|
2月前
|
缓存 JavaScript 前端开发
深入理解Vue.js中的计算属性与侦听属性
【10月更文挑战第5天】深入理解Vue.js中的计算属性与侦听属性
35 0