javascript - 聚合纸波纹

标签 javascript jquery polymer material-design polymer-1.0

我试图在按下按钮时更改元素的颜色。 当按下按钮并且颜色发生变化时,我希望在该元素中触发纸张波纹效果。

我应该怎么做?

目标元素:

<paper-toolbar class="abc">
    <paper-icon-button icon="menu" paper-drawer-toggle></paper-icon-button>
    <div flex class="indent title">Heading</div>
</paper-toolbar>                

触发元素:

<paper-button class="def background-blue"></paper-button>
<paper-button class="def background-red"></paper-button>

Javascript:

$(".def").click(function(){
    $(".abc").css("background-color", $(this).css("background-color"));
});

最佳答案

不是直接在 paper-toolbar 上操作样式,一个更 element 的方法是在你的旁边添加一个 paper-ripple 元素paper-toolbar 并在调用 mousedown/mouseup 时手动调用 downAction/upAction在你的 paper-button 上。

<paper-header-panel class="fit">
    <paper-toolbar class="toolbar">
        <paper-icon-button icon="menu" paper-drawer-toggle></paper-icon-button>
        <div flex class="indent title">Heading</div>

        <paper-ripple id="ripple" center></paper-ripple>
    </paper-toolbar> 

    <div>
        <paper-button class="def background-blue"raised on-mousedown="_onMousedown" on-mouseup="_onMouseup">Go blue</paper-button>
        <paper-button class="def background-red" raised on-mousedown="_onMousedown" on-mouseup="_onMouseup">Go red</paper-button>
    </div>
</paper-header-panel>

请注意,paper-ripple背景色color

_assignColor: function(e) {
     var button = Polymer.dom(e).localTarget;
     var ripple = this.$.ripple;

     $(ripple).css("color", $(button).css("background-color"));  

     // or without jQuery
     //var buttonStyle = getComputedStyle(button, null);
     //ripple.style.color = buttonStyle.backgroundColor;        
},

 _onMousedown: function (e) {
    this._assignColor(e);

     this.$.ripple.downAction({x: e.x, y: e.y});
 },

 _onMouseup: function (e) {
     this._assignColor(e);

     this.$.ripple.upAction();
 }   

看看这个plunker .

关于javascript - 聚合纸波纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668506/

相关文章:

javascript - SuiteScript 2.0 在提交之前更新自定义行字段

javascript - 如何在上一个 Action 仍在发生时阻止 JQuery Action

javascript - 使用 AngularJS 开发完整的面向公众的企业应用程序

空缓存和硬重新加载时 Firebase 托管页面未找到错误

node.js - 在没有 index.html 文件的情况下使用 Polymer 的 vulcanize 工具

获取 ProductID 的 Javascript 代码?

jquery - 如果选择框列表中只有一个选项,则自动选择选项 - JQuery

Jquery 在最后一次按键后 2 秒运行代码

javascript - 根据 Container 的高度垂直流动元素

javascript - 如何将项目动态添加到纸质下拉菜单中?