js的自定义属性及多一排图片的点击切换效果的实现

       js的自定义属性

自定义属性:js可以为任意的HTML元素添加任意个自定义的属性(可进行读和写的操作)

自定义属性的设置方法:
HTML属性值.自定义变量 = 赋值;
window.onload = function(){
                var oBtn = document.getElementById('btn1');
                oBtn.abc = 123;
                alert(oBtn.abc);
}

一排图片的点击切换效果
1) 可以利用布尔值 只有两个值 true为真,false为假
实例代码:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>js的自定义属性</title>
        <style>
            h2{ height:30px; width:300px; border:2px solid pink; font-size:20px; text-align:center; line-height:30px; margin:40px auto;}
            li{ height:250px; width:350px; border:2px solid yellow; margin-left:30px; float:left; background:url(imgs/z.1.jpg); list-style:none;}
        </style>
        <script>
             window.onload = function(){
                var aLi = document.getElementsByTagName('li');
                var onOff = true; // 设置布尔值
                for( var i=0;i<aLi.length;i++){
                    aLi[i].onclick = function(){
                        if(onOff){
                          this.style.background = 'url(imgs/z.2.jpg)';
                          onOff = false;
                        } else{
                          this.style.background = 'url(imgs/z.1.jpg)';
                          onOff = true;
                        }
                    }
                }
             }
        </script>
    </head>
    <body>
        <h2>js的自定义属性的应用</h2>
        <ul>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </body>
</html>
利用布尔值虽然可以实现单个的点击切换效果,可是当有一排图片都需要实现点击切换的效果时,它就会出现故障,如上面的代码,不能进行连续的一排图片的点击切换。

此时,如果想实现一排图片而且每张图片都可以点击切换还可以一排进行连续点击切换,就需要利用刚刚说的js的自定义属性

实例代码如下:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>js的自定义属性</title>
        <style>
            h2{ height:30px; width:300px; border:2px solid pink; font-size:20px; text-align:center; line-height:30px; margin:40px auto;}
             li{ list-style:none; margin:0; padding:0;height:250px; width:350px; background:url(imgs/z.1.jpg); border:2px solid yellow; float:left; margin-left:30px;}
        </style>
        <script>
             window.onload = function(){
                var aLi = document.getElementsByTagName('li');
                
                for(var i=0;i<aLi.length;i++){
                    aLi[i].onOff = true; // js的自定义属性
                    aLi[i].onclick = function(){


                        if(this.onOff){
                        this.style.background = 'url(imgs/z.2.jpg)';
                        this.onOff = false;
                        }else{
                           this.style.background = 'url(imgs/z.1.jpg)';
                           this.onOff = true; 
                        }
                        
                    }
                }
             }
        </script>
    </head>
    <body>
        <h2>js的自定义属性的应用</h2>
        <ul>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </body>
</html>

在js中运用自定义的属性,可以很简单的实现这个效果,当然在js中,运用别的属性也可以实现这个效果,不过,相比较而言,运用js中的自定义属性,更为简单,更加方便,更好理解,代码的性能更好。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章