1.第一个问题就是规范问题,现在边注释边编程以及语义化命名的问题已经基本的改善,页面的层级结构设计也条理了许多,现在的问题就是我对于页面的更深的应用还不够,比如我知道文档流自上而下从左至右,写在下面的层级一定是在写在上面的层级上面的,所以我很多时候为了方便就直接都绝对定位把他们一层一层的“往上摞”,这样是很不规范的,正确的是看好元素之间的关系,把能包在一起的放在一块写,然后通过设置父元素relative 子元素absolute 来实现 他们的上下层级的关系,这个才是规范的。

2.之前自己在私下做的项目其实不够实用,前端有些功能的实现方式是多种多样的,而且技术一直在推新,总会有效率更高的方法:

在公司这边做的一个公众号游戏充值H5页面中 ,遇到一个很实际的问题,我首先在主页面实现了一个列表,上面是商品信息加上充值的信息以及一些样式,这个时候我需要实现一个让用户确认他充钱充到的所在的服务器的弹窗,弹窗问题很基本,就是在需要被点击的dom上面绑定一个onclick事件,在JS中采用模态弹窗这个样式的显示与隐藏即可:

function dialogCloseBtn(){
document.getElementById('topUpWindows').style.visibility="hidden";
}
这里我这么写首先第一个问题就是我对于隐藏的两种方式:visibility=“hidden”以及display:“none”这两种方式的区别并没有区分开,使用visibility的隐藏只是我们看不见这些元素而已,但是实际上他们仍然存在,而display的隐藏式确确实实的让元素不存在,像我上面的使用visibility的方法,弹窗在隐藏也就是hidden的时候那些确认取消的按钮仍然生效,点一处我们根本看不见的地方会有逻辑反应实在是太荒谬了。
而且如果我们使用jQuery的写法,(当然前提是你要记住引入jQuery)长长的代码就可以简略很多,而且看起来语义更加清晰:
function dialogCloseBtn(){
$("#topUpWindows").hide();
}
3.简单的JS功能实现并不是最终目的,最终目的是要实现符合逻辑的业务功能
在游戏H5充值的首页,我们要把从后台获取到的相应的游戏道具(商品信息)展示在我们前台页面(一张列表)的同时,我们需要在前台确保我们知道用户具体点击了列表中的哪一条商品信息,把这个信息再和我们后台数据去对接,才能正确的拉取出来支付的接口,首先我要实现点击每一个按钮,按钮的样式就要做出相应的改变,也要通过这个来定位我们具体点击的是哪个。但是这里我也只是采用简单的JS来实现功能的展现,想着想着逻辑就混乱了,后来请教导师,利用JQuery里面的.addClass()和.removeClass()就容易很多:https://www.jquery123.com/addClass/
它是专门为每个匹配元素所要增加的一个或多个样式名的方法,把要添加的样式用类样式写在CSS中,再使用JQuery在需要样式出现的时候加上:

$("#square3").on("click","li",function(){
var index = $(this).index();
$("#square3 li").removeClass("serverNewStyle").eq(index).addClass("serverNewStyle");
})
这里我需要的只是在我的列表中单选改变我的样式,也就是样式随点随消失,所以这里的addClass()和removeClass()是成对出现的:
“方法通常和.removeClass()一起使用,用来切换元素的样式”
$(".products").on("click","li",function(){
var prod_id = $(this).attr("goodId");
$("#topUpWindows .confirm").attr("onclick","payFor('"+prod_id+"')");
$("#topUpWindows").show();
})
这里把列表的父元素命名为products类,对他进行点击事件的操作,这里应用到了.attr():https://www.jquery123.com/attr/ 设置每一个匹配元素的一个或多个属性。
 
 

开发H5页面遇到的问题以及解决的更多相关文章

  1. 基于Jquery WeUI的微信开发H5页面控件的经验总结(1)

    在微信开发H5页面的时候,往往借助于WeUI或者Jquery WeUI等基础上进行界面效果的开发,由于本人喜欢在Asp.net的Web界面上使用JQuery,因此比较倾向于使用 jQuery WeUI ...

  2. 基于Jquery WeUI的微信开发H5页面控件的经验总结(2)

    在微信开发H5页面的时候,往往借助于WeUI或者Jquery WeUI等基础上进行界面效果的开发,由于本人喜欢在Asp.net的Web界面上使用JQuery,因此比较倾向于使用 jQuery WeUI ...

  3. 移动端开发H5页面点击按钮后出现闪烁或黑色背景的解决办法

    H5页面在IOS端测试的时候发现,点击按钮会闪动,出现一个黑色的背景一闪而过,影响用户体验.最后通过度娘,找到解决方法: 就是给点击的元素添加一个CSS属性或者全局添加一个css. -webkit-t ...

  4. vuejs开发H5页面总结

    最近参与了APP内嵌H5页面的开发,这次使用vuejs替代了jQuery,仅仅把vuejs当做一个库来使用,效率提高之外代码可读性更强,在此分享一下自己的一些开发中总结的经验. 关于布局方案 当拿到设 ...

  5. 混合app开发,h5页面调用ios原生APP的接口

    混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H ...

  6. 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑

    最近给公司微信公众号,写了微信h5业务页面,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了. 1.ios端兼容input光标高度 问题详情描述:input ...

  7. 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项

    混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...

  8. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  9. vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题

    异常描述: ios系统手机中访问h5页面,按钮点击有延迟,连续点击卡顿.无反应. 异常原因: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设 ...

随机推荐

  1. 使用session统计在线人数

    效果图如下 这里是Chrome浏览器新登录一个用户 代码展示 package com.test.Util; import java.util.ArrayList; import javax.servl ...

  2. vim搜索及高亮取消

    1. 命令模式下,输入:/字符串 比如搜索user, 输入/user 按下回车之后,可以看到vim已经把光标移动到该字符处和高亮了匹配的字符串 2. 查看下一个匹配,按下n(小写n) 3. 跳转到上一 ...

  3. Jenkins的安装配置和使用

    Jenkins的安装配置和使用 1 Jenkins介绍 w3cschool中这样介绍:Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...

  4. 简易OA漫谈之工作流设计(六,快捷表单和动态表单)

    如果没有表单设计功能,我们一般建物理表,再把表单挂接到流程, 我们可以把外接表单的地址填到表单地址中,地址中会传递一个id. 如果使用外接表单,在审批的时候可能会“不太友好”,因为在审批单上看不到任何 ...

  5. PHP生成小程序二维码合成图片生成文字

    这部分代码是写在项目上的代码,THINKPHP3.1如果迁移到其他的地方应该要稍稍改动一下以适合自己的项目 function get_bbox($text,$fsize,$ffile){ return ...

  6. CentOS 7系统上添加netcdf库

    这里提供两种方法来安装 netcdf: 一是 yum 安装,yum 安装时采用的是系统自带的 gfortran 编译器,版本较旧: 二是采用源码来 Makefile 编译安装的方式,它可以下载最新版的 ...

  7. C#设计模式(0)-设计模式系列文章导航

    设计模式系列文章导航  C#设计模式(1)——单例模式(SingletonPattern) C#设计模式(2)——简单工厂模式(SimpleFactory)    C#设计模式(3)——工厂方法模式( ...

  8. mysql存储过程和执行计划案例

    开启event_scheduler指令: SET GLOBAL event_scheduler = ON;SET @@global.event_scheduler = ON;SET GLOBAL ev ...

  9. 二、linux的安装

    1. 虚拟机安装: 1.1. 什么是虚拟机 虚拟机:一台虚拟的电脑. 虚拟机软件: * VmWare :收费的. * VirtualBox :免费的. 1.2. 安装VmWare 参考<虚拟软件 ...

  10. Tomcat服务器提示:The server is temporarily unable to service your request due to maintenance downtime or capacity problems

    今天网站突然不能访问了,这里做一下记录提示: The server is temporarily unable to service your request due to maintenance d ...