一个完整的移动端项目的构建步骤——框架搭构7

Posted 起个好名字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个完整的移动端项目的构建步骤——框架搭构7相关的知识,希望对你有一定的参考价值。

     基本代码已经完成了,现在我们需要一点完善。

    首先,在右上角有一个【详细规则】的字符串,我们需要给它添加事件——点击之后弹出一个遮罩层,遮罩层里面出现一个div,上面写了各种东西。这个div的最底部是一个超链接,可以接着进行跳转。点击遮罩层,除了div以外的部分,可以让遮罩层自动消失。

    尽管这个只要利用jquery稍稍改进一下就可以了,但是这里我们需要用模块处理,好处就是,以后想要用遮罩的时候直接引用就好。于是,首先写一个模块:

 1 window.Layer = (function(){
 2 
 3     var cssLoad = false; //代表css有没有被添加
 4     var instance; //遮罩层
 5 
 6     function init(layerContent){
 7         if(!cssLoad) {
 8             //样式没有被添加
 9             var style_str = ".layer_mask {position: fixed; right: 0; top: 0; bottom: 0; left: 0; background: rgba(0,0,0,.6); z-index: 1; height: 100%; }.layer {position: fixed; right: 0; top: 0; bottom: 0; left: 0; z-index: 99999; height: 100%; display: none; }";
10             var style_instance = document.createElement(‘style‘);
11             style_instance.innerhtml = style_str;
12             document.getElementsByTagName(‘head‘)[0].appendChild(style_instance);
13             cssLoad = true;
14         }
15         replace_content = ‘<div id="layer_mask" class="layer_mask"></div>‘ + layerContent;
16         if(!instance) {
17             instance = document.createElement(‘div‘);
18             instance.setAttribute(‘class‘, ‘layer‘);
19             var content = replace_content;
20             document.body.appendChild(instance);
21         }
22         instance.innerHTML = replace_content;
23         bindEvent();
24         show();
25         return instance;
26     }
27     function bindEvent(){
28         var dom = document.getElementById(‘layer_mask‘);
29         dom.onclick = function(){
30             hide();
31         }
32     }
33     function show(){
34         instance.style.display = ‘block‘;
35     }
36     function hide(){
37         instance.style.display = ‘none‘;
38     }
39     return {
40         init: init
41     }
42 })()

上面就是一个遮罩层的模块了,一如既往,第一行暴露一个全局自执行函数,将模块暴露出去。

然后声明两个变量。

 

创建一个函数,第一个if语句中,作用是对遮罩层的css样式完成一次加载,这个加载是在cssLoad这个变量为false的时候才会进行的。当模块的html代码书写完毕之后,我们自然需要同时配上css,而且这个css最好跟着这个模块一起加载而不是在首页加载,这样可以减少一些不必要的资源的消耗。

这个if语句中,第一句创建一个style_str变量,写上遮罩层的所有css,当然,真正写的时候可以直接在首页上写好css,然后链接过去,调整。调整完毕后,将链接里的css代码全部复制过来,删除链接。

创建完了之后再创建style标签,然后将css全部输入,然后将这个节点元素全部加载到head标签里面去。最后将cssload的值更改,这样就不会重复加载了。

 

下面这个replace_content变量代表【替换内容】,毕竟,每个遮罩层里的内容都不一样,如果遮罩层模块里的内容都固定了,那么模块也就没有意义了,除非另创一个模块去继承。与其这么麻烦,不如直接让需要遮罩层的模块自己提供内容,这个遮罩层模块只负责显示,这样就完美了。

当然,这里能更改的只有文字内容,如果需要全部更改的话,就需要传进来至少2个变量,一个负责css代码,一个负责文字内容。有需要的可以自己去摸索一下,稍稍改改就好。

然后下面这个if语句就是添加遮罩层的代码了。判断遮罩层有没有加载,没有就创建一个遮罩层div,给它各种属性,这里是给它添加一个类属性,然后将这个div放到body下面完成加载。

之后就是将内容输入这个div中,调用bindEvent和show方法,启动事件调用和显示。

 

事件调用方法:简单的点击一个遮罩层就会启动隐藏函数。另,这里设置了冒泡解除,不然点击需要的内容也会触发这个事件。

这个模块就到此为止了。

 

以上是关于一个完整的移动端项目的构建步骤——框架搭构7的主要内容,如果未能解决你的问题,请参考以下文章

一个完整的移动端项目的构建步骤——框架搭构1

一个完整的移动端项目的构建步骤——框架搭构4

一个完整的移动端项目的构建步骤——框架搭构2

一个完整的移动端项目的构建步骤——框架搭构6

Android 逆向Frida 框架 ( 安装 frida 12.7.5 | 安装 frida-tools 5.1.0 | PC 端 frida 与 安卓模拟器端 frida-server )(代码片

移动端vue项目构建配置环境 vue-router路由 VUX ui框架 axios请求等等~~