收藏
回答

动态修改page节点的样式【追加需求】?

老早以前发过类似的需求:动态修改page节点的样式

内容如下:

- 需求的场景描述(希望解决的问题)

wxss中可以直接修改包括page在内的节点的样式,但是wxml中没有page节点,所以page不能像其他节点那样动态修改样式,而且也没有什么api可以用

现在折中的方法是在page里加一个view模拟page,感觉多此一举啊


- 希望提供的能力

能有api可以动态修改page节点的样式

官方最近推出了page-meta组件来回应这个需求,但是这个组件是将部分可用的样式变成了一个一个独立的属性来设置,还是不够灵活

我这边追加两个建议需求

1、(这条删掉,有个page-style属性)page-meta组件可以和其他组件一样用下面这种方式来动态设置样式

<page-meta style="background: {{red?'red':'white'}};padding: {{pagePadding}}rpx;{{otherPageStyle}}">

2、增加类似 wx.setPageStyle (名字可以官方决定,我这个是建议)这样一个统一的api来设置page的样式

最后一次编辑于  11-26
回答关注问题邀请回答
收藏

2 个回答

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    11-26
    1. page-meta 有个 page-style 属性来这么做(可以用 WXML 数据绑定)。

    2. 我们考虑并没有提供这个调用。原因一是原则上界面尽量用定义式的方式来做;二是 wx 开头的调用是全局的,我们不太好区分开发者的意图到底是更改哪个页面的样式,有可能会改错。

    11-26
    赞同
    回复 2
    • 祺爸💎
      祺爸💎
      11-26
      谢谢回复,page-style这个没注意看,漏掉了。话说为什么不直接用style?测试测试
      11-26
      回复
    • 小程序技术专员-LastLeaf
      小程序技术专员-LastLeaf
      11-26回复祺爸💎
      这个节点语义上并不是“页面节点本身”,而是页面节点的一个代理一样的东西,所以没用 style 这个属性名。另一个原因是小程序的基础框架中“style”是由框架负责管理的“特殊属性”,无法被组件处理。
      11-26
      1
      回复
  • 杭州弧途科技有限公司
    杭州弧途科技有限公司
    11-26

    插眼

    11-26
    赞同
    回复
问题标签