w***@163.com
w***@163.com
  • 发布:2017-04-12 16:24
  • 更新:2017-04-12 17:47
  • 阅读:1567

页面跳转底部tab变化

分类:MUI

A页面有底部tab的样式,B页面没有底部tab,怎么才能设置从A页面跳转到B页面时底部消失,再从B页面跳转回A页面底部还和原来的一样,
设置从A跳转到B可以
mui.openWindow({
url:'login.html',
id:'login',
styles:{
top:"0",
bottom:"0"
}
});
再从B跳到A时把样式改成原来的就把A的样式覆盖了,不显示底部

2017-04-12 16:24 负责人:无 分享
已邀请:
小米稀饭大米粥

小米稀饭大米粥 - 诗词歌赋,样样稀松。

底部是个选项卡吗? 话说跳转到B页面的话,如果B页面 <header> 带有左侧返回class的话,可以是返回到上个页面的。

  • w***@163.com (作者)

    对,可以返回,但是返回时A页面的tab就变化了,B页面有背景图,就把背景图也加到了A页面

    2017-04-12 16:41

小米稀饭大米粥

小米稀饭大米粥 - 诗词歌赋,样样稀松。

B页面的背景图也称为A页面的背景图吗?背景图遮盖了选项卡?

黑色火焰

黑色火焰 - 个人博客:http://blog.luotiankeji.com

选项卡是不是A页面的父页面(A页面占屏幕大半部分,选项卡占屏幕小半部分)?如果是,那就简单了。
页面之间不要直接互相打开,先判断要打开的页面是否加载,如果已经加载了,则不要重复打开,用show来显示它。
所以就会有这么三个页面:选项卡页面(A页面父页面)、A页面(选项卡子页面)、B页面
注意,B页面不要直接操作A页面,而是操作它的父页面——选项卡页面,无论是打开还是show。
这样的话,打开B页面时,屏幕会被全部覆盖,打开选项卡页面时,屏幕上面是A页面,下面是选项卡。

  • w***@163.com (作者)

    对,是的,tab是公共的底部,来打开其他的页面,登录注册是通过mine.html页面跳转的,mine.html页面是通过tab加载的

    2017-04-12 17:01

  • w***@163.com (作者)

    但是通过B直接操作tab的话,会只显示tab,tab里面的子页会不显示,,多点击几次才显示,而且B返回会点击闪烁,点好几次才返回,这是为什么?

    2017-04-12 17:04

  • 黑色火焰

    回复 w***@163.com:如果是这样,mine应该为tab的子页面(各占屏幕一部分),其它页面都不为tab的子页面,这样新的页面一打开就会占满整个屏幕,要回到mine页面时,只需要将其它页面关闭即可,或者是将tab这个父页面show一下,tab和mine就会一起显示了。

    2017-04-12 17:07

  • 黑色火焰

    回复 w***@163.com:你说通过B操作tab,是调用show方法,还是重新new了一个tab,如果是重新new了一个,webview的id相同是会冲突的

    2017-04-12 17:09

  • w***@163.com (作者)

    是打开openWindow的

    2017-04-12 17:12

  • w***@163.com (作者)

    mui.openWindow({

    url:'tab.html',

    id:'tab',

    styles:{

    top:"0",

    bottom:"50px"

    }

    });

    2017-04-12 17:12

  • 黑色火焰

    回复 w***@163.com:一定每次都要重新打开tab页面?如果不是,那么这样:

    var tab=plus.webview.getWebviewById('tab');

    if(tab){

    tab.show();

    }

    else{

    mui.openWindow({

    url:'tab.html',

    id:'tab'

    });

    }

    另外,bottom为什么你要设为50px?

    2017-04-12 17:19

  • w***@163.com (作者)

    他原来是tab是50px,所以想设置回去,因为刚才不是设置了个0吗

    2017-04-12 17:20

  • w***@163.com (作者)

    可以不设置50px,但是还是需要点击多次才显示,而且mine不和tab一起显示,只显示tab

    2017-04-12 17:22

  • w***@163.com (作者)

    而且这个必须连续点击多次才可以跳转回去,为什么?

    2017-04-12 17:27

  • 黑色火焰

    回复 w***@163.com:刚才试了下,如果tab在mui.init中创建A子页面,那么在B页面中对tab用show方法,确实不会显示A子窗口。这里可以使用5+的append方法来创建子页面,具体API调用可以看html5+的文档,下面楼层我写了个demo你看看。

    2017-04-12 17:51

  • w***@163.com (作者)

    嗯嗯,好的,大神,谢谢了,我先看看

    2017-04-12 17:52

  • 黑色火焰

    回复 w***@163.com:没事。你刚才说连续点击多次左上角的返回,才能关闭该页面?我之前遇到过类似的BUG,建议你加个按钮在页面上,按钮执行 plus.webview.currentWebview().close();//这绝对能关闭当前页面

    然后通过这个按钮来关闭页面看是否能一次性关闭,如果能的话,可以说遇到了跟我一样的BUG,那么你改写mui.back函数就行了。

    如果依然不能,可能你打开了多个B页面,你关了一个又显示了一个B页面。

    2017-04-12 17:57

  • w***@163.com (作者)

    嗯嗯,好的,我先把你的那个demo看一下,好像是跟我要的一样,我的消化消化

    2017-04-12 17:59

小米稀饭大米粥

小米稀饭大米粥 - 诗词歌赋,样样稀松。

背景图是B页面的background-image吧?返回怎么可能能把背景图返回到父页面A呢?这个就有问题。实在不行,A既然是选项卡,你调整下选项卡的优先级:z-index:9999 试试

黑色火焰

黑色火焰 - 个人博客:http://blog.luotiankeji.com

给你写了个DEMO,下载附件直接真机运行,你看看效果是否是你要的。

该问题目前已经被锁定, 无法添加新回复