2015-07-01 37 views
2

嗯,我不知道transform函数中的return是否可以工作,但是,有人知道是否有办法让我得到类似的东西?将一个函数的对象内...对象内的函数

var t = $(this).scrollTop(); 
var h = $(window).height(); 

function transform(val){ 
    return "-webkit-transform": "translateY(" + val + "%)", 
    "-ms-transform": "translateY(" + val + "%)", 
    "transform": "translateY(" + val + "%)"; 
} 

$("#header").css({ 
    opacity: 50 * (t/h), 
    tranform(50 * (t/h)) 
}); 

回答

1

你可以使用一个CSS扩展语言(如小于或SCSS)来处理变量,那么简单地处理并使用一些简单的样式。

如果你想坚持JS,我建议从transform返回一个哈希和日后扩展,如:

function transform(val) { 
    return { 
    "-webkit-transform": "translateY(" + val + "%)", 
    "-ms-transform": "translateY(" + val + "%)", 
    "transform": "translateY(" + val + "%)" 
    } 
} 

function transformWithOpacity(val) { 
    var base = transform(val); 
    base["opacity"] = val; 
    return base; 
} 

var num = 50 * (t/h); 
$("#header").css(transformWithOpacity(num)); 
+0

散列被称为Javascript中的“对象”。 – Barmar

+0

@Barmar对象是ES规范中特定类型的构造,但“散列”通俗地用于指示没有构造函数,自定义原型链的对象,并且通常没有方法(简单的散列值而不是构造的实例) 。 – ssube

+0

我没有注意到使用约定。 – Barmar

1

可以使用JQuery extend功能这个

$("#header").css($.extend({ 
    opacity: 50 * (t/h) 
    }, 
    tranform(50 * (t/h)) 
));