• 去掉CSS中的表达式Expression


     在IE中,CSS是可以嵌入js表达式的,可以在CSS类中定义,但是将含有表达CSS类从DOM对象中移除,样式表达式是不会失效的。

    经过研究找到了答案,需要使用js调用style对象的removeExpression()方法才可去除。

    下面是方法的说明:

    语法

    bSuccess = object.removeExpression(sPropertyName)

    参数

    sPropertyName Required. String that specifies the name of the property from which to remove an expression.

    返回值

    Returns one of the following possible values:

    true The expression was successfully removed.
    false The expression was not removed.

    下面给出一个实用例子:利用样式限制图片最大宽度,通过一个按钮切换实际大小与缩放大小。

    CSS类,作用:限制图片的最大宽度,超出指定宽度等比缩小。

    Css代码  收藏代码
    1. .wrap {  
    2.     border:none;  
    3.     max-730px;  
    4.     height:auto;  
    5.     expression(this.width>730?"730px":true);/*ie6补丁*/  
    6.     }  

     图片<img>

    Html代码  收藏代码
    1. <img id="chart_img" class="chart" src="bond_big.jpg"/>  

    切换按钮

    Html代码  收藏代码
    1. <span id="imgctr" style="cursor: pointer;display: block" onclick="showOrigin()">[原始大小]</span>  

    js代码(需要jQuery)

    Java代码  收藏代码
    1. function showOrigin(){  
    2.     $('#chart_img').toggleClass("chart");  
    3.       
    4.     if($('#chart_img').attr("class")){  
    5.         $('#imgctr').text("[原始大小]");  
    6.     }else{        
    7.         $('#imgctr').text("[缩放大小]");  
    8.         $('#chart_img')[0].style.removeExpression('width'); /*ie6补丁*/  
    9.     }  
    10.       
    11. }  

      

    这个事例只有在IE6中才能体现removeExpression()的作用,ie7以上是不需要的。

  • 相关阅读:
    做过的笔试题
    (转)32位机器中int的字长
    JS_void()
    JS_增加事件,移除事件,动态元素的增删事件研究
    JS_animate 站在别人的肩膀上
    JS_对象的方法
    JS_Class.extend
    JS_返回值
    JS_eventBind
    JS_应用对象的复制
  • 原文地址:https://www.cnblogs.com/xiaochao12345/p/4039431.html
Copyright © 2020-2023  润新知