【问题标题】:Change gradient background colors on mouse move在鼠标移动时更改渐变背景颜色
【发布时间】:2013-06-20 21:32:53
【问题描述】:

我正在尝试根据光标位置更改顶部和底部颜色的渐变。以下函数在使用$(document.body).css('background','rgb('+rgb.join(',')+')'); 更改背景时有效,但我似乎无法让它与渐变一起使用。下面的代码是我为在 Firefox 中测试而设置的。我将更新代码,同时我目前尝试为每个浏览器设置选项。

http://coreytegeler.com/justin/

$(window).load(function(){
var $win = $(window),
    w = 0,h = 0,
    top = [],
    bottom = [],
    getWidth = function() {
        w = $win.width();
        h = $win.height();
    };

$win.resize(getWidth).mousemove(function(e) {

    top = [
        Math.round(e.pageX/w * 255),
        Math.round(e.pageY/h * 255),
        150
    ];

     bottom = [
        Math.round(e.pageX/h * 255),
        Math.round(e.pageY/w * 255),
        150
    ];

    $(document.body).css('background: -moz-linear-gradient(top, ('+top.join(',')+'), ('+bottom.join(',')+'))');
}).resize();

});

【问题讨论】:

    标签: javascript jquery gradient linear-gradients


    【解决方案1】:

    一个问题是您使用错误的 javascript .css 方法。它有两个参数,或者一个对象。所以应该是:

    $(document.body).css('background', '-moz-linear-gradient(top, rgb('+top.join(',')+'), rgb('+bottom.join(',')+'))');
    

    $(document.body).css({background : '-moz-linear-gradient(top, rgb('+top.join(',')+'), rgb('+bottom.join(',')+'))'});
    

    除此之外,您的代码看起来基本正确。

    【讨论】:

    • 感谢您的快速回答!只是意识到它在那里看起来很时髦哈哈,谢谢你的帮助,虽然我仍然无法让它工作
    • 对不起,我错过了另一件事。您的 css 渐变字符串缺少 rgb 部分。我已经更新了答案。
    • 哇!谢谢大佬,现在是时候继续试验了,很有趣,谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-07-10
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多