最近在学习移动端组件化开发web页面,其中有好多小细节,值的去思考。

  主要介绍JS的思路,具体的代码就不贴了,主要是想表达出一种思路

  总体来说

  1.入口文件,在入口文件中导入插件,插件样式,jquery
// 首先要有config参数
var config ={
// config
}
// 进行实例化
var H5 = new H5Component(config)
// 插入DOM中
$(".container").append(H5)
// 触发组件中的自定义事件
$("body").on("click",function(){
$(".component").trigger(event)
})
  2.组件.js
var H5ComponentBase = function(config){
// 初始化形参
var config = config || {} ;
// 设置class id等信息
// ...
// 建立dom节点
var component = $("<div></div>");
// css样式(行内样式)
// ...
// 触发自定义事件时
// ...
// 返回这个dom节点
return component;
}

引发的思考

  1.如何根据ui的图片适应不同的设备

   比如说完全显示图片而不是自己再给img或者背景设置宽高,或者设置背景的left和top

  css

.h5_component_class_base{
backgroundImage:url("./bg.png");
background-size: 100%;
background-repeat: no-repeat;
}

  当然你也可以在js中手动添加backgroundImage或样式

  但是得注意一个问题, backgroundImage:url("./bg.png") 与 background:url("./bg.png")都能让图片加载出来,但是用background:url后设置background-size:100%无法完全显示图片,这个问题在之前碰到过

   css中background是背景设置的集合,而background-image只是设置背景的图片样式。
   background后可加背景颜色,背景图片及图片排列样式,和结构对齐样式,可以说控制了整个背景的属性。
不要替换这两个,否则就会踩坑
2.居中的问题
 之前总结了很多居中的问题,但是多了反而不记得了,flex居中,float居中等
 水平居中,设置dom的position:absolute,left:50% margin-left 为负的真实宽度的一半,所谓真实宽度就是页面上显示的宽度,UI给的psd图一般是以
iPhone5宽度做的,需要把psd的宽高除2才是真实宽高,这就是水平居中的做法,同理垂直居中也是这样。
css
.test{
position:absolute;
//水平居中
left :50%;
margin-left: 1/2*width*-1;
//垂直居中
top :50%;
margin-right:1/2*height*-1;
}
3.自定义事件的创建与引用
创建自定义事件
在入口文件中当点击body时创建自定义事件,也可以是其他事件触发该自定义事件
var flag = true;
$("body").on("click",function(){
flag ! =flag;
$(".dom").trigger(flag?"event1":"event2");
})

触发自定义事件

在插件中执行

DOM.on("event1",function(){
// 执行后的操作
})
DOM.on("event2",function(){
// 执行后的操作
})


 
 

学习 | jQuery移动端页面组件化开发(一)的更多相关文章

  1. ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS

    react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...

  2. Vue学习笔记-Vue.js-2.X 学习(二)===>组件化开发

    ===重点重点开始 ========================== (三) 组件化开发 1.创建组件构造器: Vue.extends() 2.注册组件: Vue.component() 3.使用 ...

  3. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  4. vue组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...

  5. 【转】Web应用的组件化开发(一)

    原文转自:http://blog.jobbole.com/56161/ 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其 ...

  6. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  7. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  8. 从徐飞的文章《Web应用的组件化开发(一)中窥视web应用开发的历史

    Web应用的组件化开发(一) 原文来自 徐飞 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追 ...

  9. Vue的指令以及组件化开发

    一. 自定义指令 如何: 1. 创建指令 Vue.directive("指令名",{ inserted(elem){//指令所在的元素被加载到DOM树上后自动执行指令 //elem ...

随机推荐

  1. Excel 提取年月日①

    问题场景 从任务数据表中比较所有任务的预计完成时间和实际完成时间,来判断该任务是逾期还是按期完成了,根据实际场景是不需要考虑时分秒,只需对比该任务预计完成和实际完成的年月日. 可通过提取年月日用函数进 ...

  2. Oracle数据库安装教程

    一.准备文件 Oracle安装程序(64位)下载地址: http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_ ...

  3. MIT 6.828 Lab04 : Preemptive Multitasking

    目录 Part A:Multiprocessor Support and Cooperative Multitasking Multiprocessor Support 虚拟内存图 Exercise ...

  4. python基础 Day1

    Python开发笔记 Day1 1.cpu内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类大脑 内存:暂时存储数据,临时加载数据应用程序,4G(内存速度快,断电即消失) 硬盘:磁盘,长 ...

  5. 虚拟化技术之kvm虚拟机创建工具qemu-kvm

    在前边的博客中我们介绍了如何创建kvm虚拟机,以及一些常用的工具的介绍和使用,今天我们来了解下kvm原始工具qemu-kvm:为什么说qemu-kvm是一个原始的工具呢,如果你用kvm虚拟机,心细的你 ...

  6. http请求工作流程

    一.HTTP工作原理 HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端.HTTP协议采用了请求/响应模型.客户端向服务器发送一个请求报文,请求报文包 ...

  7. 操作系统-I/O(6)I/O与系统调用

    所有高级语言的运行时(runtime)都提供了执行I/O功能的机制. 例如,C语言中提供了包含像printf()和scanf()等这样的标准I/O库函数, C++语言中提供了如 <<和&g ...

  8. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  9. Hadoop的SecondaryNameNode的作用是什么?

    为节省篇幅,将SecondaryNameNode简称SNN,NameNode简称NN. NN与fsimage.edits文件 NN负责管理HDFS中所有的元数据,包括但不限于文件/目录结构.文件权限. ...

  10. Linux图形界面安装Oracle11G(Centos7)

    以Centos7为列 创建运行Oracle数据库的系统用户和用户组 #切换root用户 [px@localhost /]$ su - root [px@localhost /]$ su - root ...