wx.showModal模态框背景颜色怎么改成黑色
时间: 2023-07-15 17:13:29 浏览: 340
在小程序中,不支持直接设置 `wx.showModal` 模态框的背景颜色。不过你可以在模态框显示时,给整个页面的背景色设置为黑色,从而达到模态框背景变黑的效果。
下面是示例代码:
```css
/* 在 app.wxss 或者需要设置背景色的页面的 wxss 文件中添加以下样式 */
.page-background {
background-color: #000000;
}
```
```javascript
// 在需要显示模态框的页面的 js 文件中添加以下代码
wx.showModal({
title: '提示',
content: '这是一个模态框',
success(res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
},
// 在模态框显示时,给整个页面的背景色设置为黑色
show() {
wx.pageScrollTo({
scrollTop: 0,
duration: 0
})
wx.setBackgroundColor({
backgroundColor: '#000000',
success() {
wx.nextTick(() => {
wx.createSelectorQuery().select('.page').boundingClientRect((rect) => {
wx.top = rect.top
wx.height = rect.height
wx.getSystemInfo({
success(res) {
if (res.statusBarHeight && res.platform == 'android') {
wx.top = wx.top - res.statusBarHeight
wx.height = wx.height + res.statusBarHeight
}
wx.getMenuButtonBoundingClientRect(() => {
wx.height = wx.height - (wx.top - res.statusBarHeight)
wx.top = wx.top - (wx.top - res.statusBarHeight)
wx.createSelectorQuery().select('.page-background').boundingClientRect((rect) => {
wx.height -= rect.height
wx.top += rect.height
wx.setBackgroundColor({
backgroundColor: '#000000',
success() {
wx.nextTick(() => {
wx.createSelectorQuery().select('.page-content').boundingClientRect((rect) => {
wx.height -= rect.height
wx.top += rect.height
wx.setBackgroundColor({
backgroundColor: '#000000',
success() {
wx.nextTick(() => {
wx.createSelectorQuery().select('.weui-dialog').boundingClientRect((rect) => {
const top = wx.top + wx.height / 2 - rect.height / 2
wx.top = top < wx.top ? wx.top : top
wx.setBackgroundColor({
backgroundColor: '#000000',
success() {
wx.nextTick(() => {
wx.createSelectorQuery().select('.weui-dialog').boundingClientRect((rect) => {
const top = wx.top + wx.height / 2 - rect.height / 2
wx.top = top < wx.top ? wx.top : top
wx.setBackgroundColor({
backgroundColor: '#000000',
success() {
wx.nextTick(() => {
wx.createSelectorQuery().select('.weui-dialog').boundingClientRect((rect) => {
const top = wx.top + wx.height / 2 - rect.height / 2
wx.top = top < wx.top ? wx.top : top
wx.setBackgroundColor({
backgroundColor: '#000000',
})
}).exec()
})
}
})
}).exec()
})
}
})
}).exec()
})
}
})
}).exec()
})
}
})
}).exec()
})
}
})
}).exec()
})
}
})
},
// 在模态框关闭时,恢复页面背景色
complete() {
wx.setBackgroundColor({
backgroundColorTop: '#ffffff',
backgroundColorBottom: '#ffffff'
})
}
})
```
需要注意的是,这段代码中的选择器 `.page`、`.page-background`、`.page-content` 和 `.weui-dialog` 都是根据实际情况而定,需要根据你的代码中元素的类名来进行修改。
阅读全文