thymeleaf小知识
1、根据不同性别,显明不同的默认图片:th:if
th:src 图片路径
<img th:if="${gender=='男'}" id="admission_photo" th:src="@{/static/images/boy.jpg}" />
<img th:if="${gender=='女'}" id="admission_photo" th:src="@{/static/images/girl.jpg}" />
2、身份证号校验:
var regEx = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
var idcard = $('#idcard').val();//获取用户输入的身份证号码
var result = regEx.test(idcard);
3、手机端H5,同一个页面,分多屏滑动,用swiper
1)引入样式 :<link type="text/css" rel="stylesheet" th:href="@{/static/swiper-3.4.2.min.css}" />
2)定义swiper内容:
<div class="swiper-container swiper-no-swiping">
<div class="swiper-wrapper">
<div class="swiper-slide searchBox">
。。。。。。内容
</div>
<div class="swiper-slide white">
。。。。。。内容
</div>
<div class="swiper-slide">
。。。。。。内容
</div>
</div>
</div>
3)初始化swiper
var swiper;
swiper = new Swiper('.swiper-container', {
simulateTouch : false,
onSlideChangeStart: function(swiper){
var currentIndex = swiper.clickedIndex
var activeIndex = swiper.activeIndex;
if(currentIndex==0 && activeIndex==1){//第一页,滑动到第二页,校验身份证号码
var result = checkIdCard();
if(!result){
layer.msg("请输入正确的身份证号码");
return;
}else{
nextSwiper(activeIndex);
}
}
}
});
其中:
1)simulateTouch : false, 禁止本身滑动动作,通过页面按钮点击来滑动。默认为true,Swiper接受鼠标点击、拖动。不记得是PC还是手机端,有一个无效,加上下面的swiper-no-swiping就都有效了。
swiper-no-swiping:不可拖动块的类名,当noSwiping设置为true时,并且在slide加上此类名,slide无法拖动。
swiper.slideTo(index); 滑动事件,指定滑动到哪一屏,index从0开始。
onSlideChangeStart:监听滑动事件 swiper.clickedIndex 当前屏下标 swiper.activeIndex; 要滑向下一屏的下标
4、人脸识别,打开手机摄像头
video : {
width : 400,
height : 400,
facingMode : "user" //打开前置摄像头
}
video:{ 'facingMode': "user" }//调用前置摄像头 ,对IOS有效,安卓无效
video: { facingMode: { exact: "environment" } }//后置
安卓、IOS都兼容的前置摄像头
const video = document.getElementById('webcam');
const button = document.getElementById('cameraBtn');
let currentStream;
button.addEventListener('click', event => {
nextSwiper(2);
var constraints = {
video: {'facingMode': "user"},
audio: false
};
navigator.mediaDevices.getUserMedia(constraints).then(stream => {
currentStream = stream;
video.srcObject = stream;
return navigator.mediaDevices.enumerateDevices();
})
.catch(error => {
console.error(error);
});
});
5、H5定位
var geolocation;
geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var pt = r.point;
gc.getLocation(pt, function(rs){
var address = rs.addressComponents;
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
//map.panTo(r.point);//地图中心点移到当前位置
var latCurrent = r.point.lat;
var lngCurrent = r.point.lng;
//alert('我的位置:'+ latCurrent + ',' + lngCurrent);
var myPoint = new BMap.Point(lngCurrent, latCurrent);
//aDistance = map.getDistance(aPoint, myPoint);
bDistance = map.getDistance(bPoint, myPoint);
pos = {
lat : latCurrent,
lng : lngCurrent,
nation : address.nation==undefined?null:address.nation,
province : address.province==undefined?null:address.province,
city : address.city==undefined?null:address.city,
district : address.district==undefined?null:address.district,
street : address.street==undefined?null:address.street,
streetNumber : address.streetNumber==undefined?null:address.streetNumber,
adcode : address.adcode==undefined?null:address.adcode,
address : rs.address==undefined?null:rs.address,
business : rs.business==undefined?null:rs.business,
}
});
} else {
switch (this.getStatus()) {
case 2:
alert('位置结果未知 获取位置失败.');
break;
case 3:
alert('导航结果未知 获取位置失败..');
break;
case 4:
alert('非法密钥 获取位置失败.');
break;
case 5:
alert('对不起,非法请求位置 获取位置失败.');
break;
case 6:
alert('对不起,当前 没有权限 获取位置失败.');
break;
case 7:
alert('对不起,服务不可用 获取位置失败.');
break;
case 8:
alert('对不起,请求超时 获取位置失败.');
break;
}
}
}, {
enableHighAccuracy: false,//是否要求高精度的地理位置信息
timeout: 30000,//对地理位置信息的获取操作做超时限制,如果再该事件内未获取到地理位置信息,将返回错误
maximumAge:10*1000//设置缓存有效时间,在该时间段内,获取的地理位置信息还是设置此时间段之前的那次获得的信息,超过这段时间缓存的位置信息会被废弃
})
}
6、手机上按钮禁用手机系统的菜单
window.oncontextmenu = function(){return false;} 适用于安卓,IOS10以下才行
7、只选年的日期控件:WdatePicker
可以只选年,或只选月日,或只选时间

<input id="value" type="text" name="value" placeholder="" class="Wdate myFull"
onFocus="WdatePicker({ isShowClear:false,readOnly:true , dateFmt:'yyyy',onpicked:function(){} })"
value="${config.value}" style="height:32px;"/>
只选小时分钟的时间控件 dateFmt:'HH:mm'
<div class="col-xs-4 nopadding"><label>开始时间</label></div>
<div class="col-xs-8 nopadding">
<input id="appoint_time_begin" type="text" name="appoint_time_begin" class="Wdate myFull timebox"
onFocus="WdatePicker({ isShowClear:false,readOnly:true , dateFmt:'HH:mm',onpicked:function(){} })"
value="${setting.appoint_time_begin}" style="height:32px;"/>
</div>
thymeleaf小知识的更多相关文章
- 蓝牙Bluetooth技术小知识
蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...
- HTML+CSS中的一些小知识
今天分享一些HTML.CSS的小知识,希望能够对大家有所帮助! 1.解决网页乱码的问题:最重要的是要保证各个环节的字符编码一致! (1)编辑器的编辑环境的字符集(默认字符集):Crtl+U 常见的编码 ...
- iOS APP开发的小知识(分享)
亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...
- Unix系统小知识(转)
Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...
- salesforce 零基础开发入门学习(十)IDE便捷小知识
在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...
- Jquery:小知识;
Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器 上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...
- HTML小知识---Label
今天知道了一个html小知识: <input type="checkbox" id="chkVersion" /> ...
- Unicode和汉字编码小知识
Unicode和汉字编码小知识 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的 ...
- Java异常的一个小知识
有以下两个代码: package com.lk.A; public class Test3 { public static void main(String[] args) { try { int a ...
随机推荐
- Linux 18.04 搭建lamp环境
Linux 18.04 下搭建lamp环境 一. 安装服务器 a) 在配置好sources.list文件后,apt-get updata&upgrade更新软件: 二. ...
- twig 模板控制器对应列表
{{ render(controller(metas.header,{request:app.request, course: course, member: member|default(null) ...
- spring 机制 扫描包
控制器示例 扫描包注解代码 @SpringBootApplication(scanBasePackages = {"cn.maxhou.*"}) 引号内为包名,支持*通配符 为什么 ...
- 《C专家编程》读书笔记之第1~4章
一.C:穿越时空的迷雾 1. C标准中定义了描述编译器的特点的一些术语: (1) 由编译器定义的(imprementation-defined) 由编译器设计者决定如何处理.例如:整型数右移时要不要扩 ...
- TensorFlow 官方文档 Programmer's Guide 中文翻译 —— 引言
TensorFlow Programmer's Guide (Introduction) TensorFlow 编程手册 (引言) #(本项目对tensorflow官网上给出的指导手册(TF1.3版本 ...
- SpingMVC使用小结
- DP_Milking Time
Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...
- python 安装virtualenv和wxPython
有人说 Virtualenv.Fabric 和 PIP 是 Pythoneer 的三大神器 上一节说过了怎么安装PIP,下面继续安装virtualenv 安装wxPython时比较简单 sudo pi ...
- python time模块认识
time 模块 -- 时间获取和转换 time 模块提供各种时间相关的功能 在python中, 与时间处理有关的模块包括: time, datatime 以及 calendar 必要说明!: 虽然这个 ...
- Java多线程(八):ReentrantReadWriteLock
读写锁ReentrantReadWriteLock概述 读写锁ReentrantReadWriteLock,使用它比ReentrantLock效率更高. 读写锁表示两个锁,一个是读操作相关的锁,称为共 ...