apiCloud中Frame框的操作,显示与隐藏Frame

简介:

Frame是一层一层的概念,

有的位于上层,有的位于下层。

1.加载菜单

2.加载页面层

3.首页拆分出内容层,这个时候内容层位于页面层的上方,当点击其他页面的时候,内容层遮挡住了他们

解决方案一

判断是否是首页,如果不是首页,则将内容层调整到页面层后方。

如果是首页,则将内容层调整到前方。

这种方案有个弊端,就是其它层下拉的时候,还能够看到内容层的残留。

解决方案二

通过设置Frame属性,将Frame进行隐藏和显示操作。这就完美了。

具体代码如下,

     var eFooterLis = $api.domAll('#footer .aui-bar-tab-item'),
            frames = []; // 选择所有匹配的DOM元素
        for (var i = 0,len = eFooterLis.length; i < len; i++) {
                // 判断是否登录
                var username = $api.getStorage('customer_id');
                var url = './html/frame'+i+'.html';
                if (i==4 && !username) {
                    url = './html/userLogin.html';
                }
                frames.push( { 
                    name: 'frame'+i, 
                    url: url,
                    bgColor : 'rgba(0,0,0,.2)',
                    bounces:true,
                    pageParam:{
                        'footer_height':$api.dom('footer').offsetHeight
                    },
                } )
        }

        api.openFrameGroup({ // 打开 frame 组
            name: 'group',
            scrollEnabled: false,
            rect: {
                x: 0,
                y: 0,
                w: api.winWidth,
                h: api.winHeight-$api.dom('footer').offsetHeight
            },
            index: 0, // 默认是首页
            frames: frames
        }, function (ret, err) {
            if (ret.index != '0') { // 不是首页
//                api.sendFrameToBack({ // 调整到后方
//                    from: 'frame0Con',
//                    to: ret.frameName
//                });

                api.setFrameAttr({ // 隐藏内容层
                    name: 'frame0Con',
                    hidden:true,
                });
            } else { // 是首页
//                api.bringFrameToFront({ // 调整到前方
//                    from: 'frame0Con',
//                    to: ret.frameName
//                });

                api.setFrameAttr({ // 显示内容层
                    name: 'frame0Con',
                    hidden:false,
                });
            }
        });


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5970419.html,如需转载请自行联系原作者

相关文章
Echarts手机端无刷新实现图表自适应横屏和竖屏的解决方案
Echarts手机端无刷新实现图表自适应横屏和竖屏的解决方案
673 0
|
小程序 Windows
uniapp运行微信小程序routeDone的错误问题
uniapp运行微信小程序routeDone的错误问题
2837 0
|
JavaScript 数据处理
👻关于ECharts的那些事儿(数据超出Y轴最大值max又不想它隐藏)
👻关于ECharts的那些事儿(数据超出Y轴最大值max又不想它隐藏)
1806 0
|
消息中间件 存储 Java
最经典的消息中间件:RabbitMQ
最经典的消息中间件:RabbitMQ
1032 1
|
存储 监控 安全
服务器安全:构建数字时代的坚固堡垒
在数字化时代,服务器安全至关重要,它直接影响企业业务连续性和客户数据保护。服务器遭受攻击或数据泄露将给企业带来巨大损失。服务器面临网络攻击、恶意软件、内部与物理威胁。关键防护措施包括严格访问控制、数据加密与备份、安全审计与监控、部署防火墙和入侵检测系统、及时安全更新及物理安全防护。最佳实践涵盖制定全面安全策略、采用先进技术、员工培训、定期安全评估与测试及建立应急响应团队。通过这些措施,企业能构建坚实的服务器安全防护体系。
874 55
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
487 88
|
12月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
240 14
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
1590 0
|
网络协议 Java 关系型数据库
一篇文章彻底理解数据库的各种 JDBC 超时参数 2
一篇文章彻底理解数据库的各种 JDBC 超时参数
|
前端开发 安全 测试技术
【Python】已解决:The method is not allowed for the requested URL.
【Python】已解决:The method is not allowed for the requested URL.
1804 3