美文网首页
js基础小练习1

js基础小练习1

作者: 一刀一个小黄鱼 | 来源:发表于2017-05-31 23:58 被阅读37次

评分

五星评分基本练习,鼠标移入移出后记录当前点击确定后是几星


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span {
            color: rgba(0, 0, 0, .5);
            cursor: pointer;
        }
    </style>
</head>
<body>
    <span>❤</span>
    <span>❤</span>
    <span>❤</span>
    <span>❤</span>
    <span>❤</span>
</body>
</html>

上面是css很简单的样式,默认颜色是.5的黑色,当然下面的span也可以用js for循环来生成

<script>
        /*
        * 移入:改变span的颜色,从 0 到 鼠标移入的span位置
        * 移出:改变span的颜色,从 0 到 鼠标点击后的位置
        * 点击:记录点击了第几个
        * */

        var spanElements = document.querySelectorAll('span');
        //获取所有的span
        /*
        * 当前点击的值
        * 默认是-1,因为第0个表示的是1分
        * */
        var n = -1;

        for ( var i=0; i<spanElements.length; i++ ) {

            spanElements[i].index = i;

            spanElements[i].onmouseover = function() {
//                if (n == -1) {             
//                    change(this.index);
//                }
                change(this.index);  
              //直接简化下,如果移入,是小于当前移入的就都是红色,反之大于也就        
 是没移入之前的 都还是默认颜色
            };

            spanElements[i].onmouseout = function() {
                change(n);  //下面点击的时候记录了n为当前点击的是几,那么传参后 就是点击之前的移出就都是红色 ,点击之后的 就是默认灰色了
            };

            spanElements[i].onclick = function() {
                n = this.index;
            };

        }

        /*
        * 改变从0到end位置的span颜色
        * */
        function change(end) {
            for ( var i=0; i<spanElements.length; i++ ) {
                if (i <= end) {
                    spanElements[i].style.color = 'rgba(255,0,0,1)';
                } else {
                    spanElements[i].style.color = 'rgba(0,0,0,.5)';
                }
            }
        }
    </script>

点击全选和不全选

这个小练习就是歌曲的全选,当所有选中后,就为全选状态,单独的全选按钮也可以控制全选或者不全选

还是简单的css结构=,=

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <input type="checkbox" id="checkAll">全选
        <ul>
            <li><input type="checkbox">0001</li>
            <li><input type="checkbox">0002</li>
            <li><input type="checkbox">0003</li>
            <li><input type="checkbox">0004</li>
            <li><input type="checkbox">0005</li>
        </ul>
    </div>
</body>
</html>

看下js代码

    <script>
        var checkAllElement = document.querySelector('#checkAll'); //全选按钮
        var checkBoxElements = document.querySelectorAll('ul input'); //所有的单选按钮
        checkAllElement.onclick = function() {
            for ( var i=0; i<checkBoxElements.length; i++ ) {
                checkBoxElements[i].checked = this.checked; 
 //在input里 checked,点击后(checkbox有小勾勾出现)就相当是ture的状态,没有就是false就不用在自定义一个布尔值来控制开关操作,for循环 当所有的单个input是点击状态就相当于全选是checked状态
            }

        }
        for ( var i=0; i<checkBoxElements.length; i++ ) {

            checkBoxElements[i].onclick = function() {

                /*
                * 临时统计法
                * */
                var n = 0;
                for ( var i=0; i<checkBoxElements.length; i++ ) {
                    if (checkBoxElements[i].checked) {  //如果其中一个单选n就加1
                        n++;
                    }
                }
                checkAllElement.checked = (n == checkBoxElements.length); 
//当n=所有的单选input的长度时,就表示已经是全部都点击了,那么==的结果就为true,那全选的cheked的状态也为true了,反之有一个没点击 那么就是false,全选也为false状态
            }
        }
    </script>

还有我们也可以通过单选的input是checked n就加1,在点击一次就是关闭那就n减1 通过比较n的值来确定全选的状态

    <script>
        var checkAllElement = document.querySelector('#checkAll');
        var checkBoxElements = document.querySelectorAll('ul input');

        var n = 0;

        checkAllElement.onclick = function() {
            for ( var i=0; i<checkBoxElements.length; i++ ) {
                checkBoxElements[i].checked = this.checked;
            }
            n = this.checked ? checkBoxElements.length : 0; 
        };

        for ( var i=0; i<checkBoxElements.length; i++ ) {
            checkBoxElements[i].onclick = function() {
                this.checked ? n++ : n--;
                checkAllElement.checked = (n == checkBoxElements.length);
            }
        }


相关文章

  • js基础小练习1

    评分 五星评分基本练习,鼠标移入移出后记录当前点击确定后是几星 上面是css很简单的样式,默认颜色是.5的黑色,当...

  • JS + Git 测试小练习

    作业链接 js 基础练习js 扩展练习(section-1 & section-2) 提交记录 练习收获 这次作...

  • 任务三——JS练习(个人)

    Javascript基础练习 js-basic-practice-1 Javascript集合练习 pre-pos...

  • JS 代码练习

    1.Javascript 基础练习 git地址 js-basic-practice-1 版本信息: 2.Javas...

  • JavaScript基础

    JavaScript基础练习 js-basic-practice-1 基础联系问题不大,主要是对方法的一些掌握 J...

  • js对象 字符串 数组 Math Date方法

    string Math Array Date方法 浏览器对象 最基础的增删改查 以及JS的小练习 对象 创建...

  • js基础练习题(1)

    1.字符串 视频教程地址: js基础练习题 1.如何连接两个或者两个以上字符串? 问:如何把变量html里面的cl...

  • JS基础练习

    github作业地址: JavaScript基础练习 JavaScript集合练习 pre-pos 作业总结 1、...

  • js基础练习

    通过本文可以了解 源代码地址 对题目的一些理解 遇到的问题和解决方式 Github地址 js-basic-prac...

  • 文件上传

    0.最基础的当然是没有过滤的: 这种除非是你自己写的练习的小页面,否则emm 1.最基础的前端JS校验: 一开始先...

网友评论

      本文标题:js基础小练习1

      本文链接:https://www.haomeiwen.com/subject/qghdfxtx.html