【问题标题】:jQuery CSS remove negative valuejQuery CSS 去除负值
【发布时间】:2015-07-05 08:17:34
【问题描述】:

我在 AngularJS 中使用 jqLit​​e。

基本上我会添加一些这样的自定义 CSS 属性:

$scope.$on('scrollEvent', function(){

     if (a < 5){
        a = a + 1/20;

        $element.css({
           '-webkit-filter': 'blur('+ a +'px)',
           'margin': '-'+ a +'px'
        });
     }

     if (inView()){
        a = 0;

        $element.css({
           '-webkit-filter': '',
           'margin': ''
        });
     }
  })

我无法更改或删除边距属性值,因为它是负数,只有当它是正数时才会更改。

为什么会这样?

【问题讨论】:

  • 控制台是否出现任何错误?
  • 如果你使用 angular,那么你必须为此制定一个指令。
  • 它被包裹在一个指令中。
  • 发布整个代码。
  • @Vucko 我已经更新了我的任务,没有必要包含整个指令,因为它在设置 CSS 属性时可以预期这种特殊行为。

标签: angularjs jqlite


【解决方案1】:

但它不适用于“0px”。

无法重现。 .css() 似乎在 stacksn-ps 将 margin 属性重置为 0px

var a = 12;

$("div").css("margin", "-" + a + "px");
// set `div` `margin` to `0px` after three seconds
setTimeout(function() {
  $("div").css("margin", "0px");
}, 3000)
div {
  position:relative;
  width:50px;
  height:50px;
  background:orange;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>abc</div>

【讨论】:

  • 它在 Jquery 中工作,但我在 AngularJS 中使用 jqLit​​e,它不会覆盖具有负值的属性。
  • 什么是“jqLit​​e”? jquery 标签出现在 Question ?
  • @Jack See docs.angularjs.org/api/ng/function/angular.element at .css() “作为二传手,不会将数字转换为字符串或附加 'px'。” 尝试设置 style 的属性元素使用 js 而不使用 jqLit​​e 或 jQuery?
  • 嗯,我现在尝试使用 JS。
猜你喜欢
  • 2013-07-20
  • 2012-09-27
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多