【问题标题】:Set alpha/transparency of whole canvas in Raphael html5在 Raphael html5 中设置整个画布的 alpha/透明度
【发布时间】:2013-02-01 19:03:22
【问题描述】:

html5中使用Raphael绘制SVG,是否可以设置整个画布的alpha不透明度?

谢谢

【问题讨论】:

    标签: html canvas svg raphael opacity


    【解决方案1】:

    您可以做几件事。您可以定义一个全局Paper.set,将每个元素添加到集合中,然后将不透明度属性应用于集合,或者使用Paper.forEach() 一次将不透明度应用于每个元素。


    使用集合

    创建类似的东西:

    globalSet = paper.set();
    

    然后在创建元素时,将其添加到集合中:

    el = paper.circle(60, 60, 50);
    el2 = paper.circle(90, 60, 50);
    
    globalSet.push(el, el2);
    globalSet.attr({opacity: .75});
    

    这是一个 jsFiddle:http://jsfiddle.net/TA9vn/2/


    使用 forEach()

    不要使用集合,而是对纸张使用forEach() 方法。

    paper.forEach(function (element) {
        element.attr({opacity: .75});
    });
    

    jsFiddle:http://jsfiddle.net/JCvBT/2/

    【讨论】:

      【解决方案2】:

      您可以像这样更改 Raphael 元素的不透明度:

        raphaelElement.attr(opacity,.75);
      

      如果您要在画布上绘制 svg,只需设置 context.globalAlpha ,之后的所有绘图都将具有指定的不透明度:

        context.globalAlpha = 0.75;
      

      【讨论】:

      • 谢谢,但我如何在 Raphael 中做到这一点?
      • 我编辑了我的答案,在画布和拉斐尔绘图中都包含不透明度。
      • Raphael 不使用 html5 画布,因此该部分不适用于此处。
      • 是的——我的错,那是深夜,我看到了拉斐尔,但我的注意力集中在画布上。
      • 所以不可能在一次调用中对所有元素应用不透明度?我已经对一些应用了不透明度,并且想要一个全局不透明度来应用进一步的不透明度
      猜你喜欢
      • 2016-04-07
      • 2018-05-27
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2018-05-27
      相关资源
      最近更新 更多