zoukankan      html  css  js  c++  java
  • javascript:DOM自定义属性的妙用

    虽然HTML元素的属性已经十分丰富,但在某些场合下,元素固有的属性无法完成我们的需求;

    这个时候,自定义属性就会让问题解决起来比较方便。

    比如,下面的栗子:

    多张图片点击变化事件:当背景图片为a.jpg时,点击图片时,切换成b.jpg;

    HTML:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>自定义属性</title>
    	<style type="text/css">
        
        li{
        	list-style: none;
        	float: left;
        	 120px;
        	height: 120px;
        	background: url(a.jpg) no-repeat;
        	background-size: contain;
        }    
    	</style>
    </head>
    <body>
    
    <ul>
    	<li></li>
    	<li></li>
    	<li></li>
    </ul>
    </body>
    </html>

    因为以下条件不能作为判断条件:

    1. 背景图片无法作为判断条件:所以,通过if(this.style.background==='url(a.jpg)'){this.style.background='url(b.jpg)'}这种方法无法实现;
    2. 颜色值的表达方式多样,如(red,#333,#f7f7f7),同样无法作为判断条件;(知识补充)
    3. 相对路径无法作为判断条件,如(img/a.jpg)。(知识补充)

    此时,一般的判断条件不靠谱,所以,用自定义属性的方法显得格外简洁,高效。

          思路:

    aLi[i].onOff=true;

    给每一组li元素添加一个开关属性onOff,并设置默认值为:true;

    所以,aLi[i].onOff=true;时候,背景图片默认为a.jpg;

    然后,通过更改onOff的值,当 onOff=false时候,背景图片设置为:b.jpg.

      

       DEMO演示地址:http://codepen.io/anon/pen/Wvwmga

    JAVASCRIPT:

    var aLi=document.getElementsByTagName('li');
    
    
    for(var i=0;i<aLi.length;i++){
    
    	aLi[i].onOff=true;
    	//自定义属性,为每一个li元素添加一个onOff开关,默认值为true;
    	
    	aLi[i].onclick=function(){
         
           if (this.onOff) {
           	this.style.cssText='background:url(b.jpg) no-repeat;background-size:contain;';
           	this.onOff=false;
           }else{
    
           	this.style.cssText='background:url(a.jpg) no-repeat;background-size:contain;';
           	this.onOff=true;
           }
    
    	}
    
    }
    

      

  • 相关阅读:
    FICO-错误日志集
    FICO-财务凭证验证及替代
    FICO-Payment Terms 收付款条件和分期付款设置
    ABAP-JCO服务端连接问题
    LES-整车企业物料拉动系统的设计和实现
    工程数学-微积分
    web前端(15)—— JavaScript的数据类型,语法规范2
    web前端(14)—— JavaScript的数据类型,语法规范1
    web前端(13)—— 了解JavaScript,JavaScript的引入方式
    web前端(12)—— 页面布局2
  • 原文地址:https://www.cnblogs.com/kevinCoder/p/4506019.html
Copyright © 2011-2022 走看看