zoukankan      html  css  js  c++  java
  • 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>

      

     

     

     

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/ngy0217/p/11612419.html
Copyright © 2011-2022 走看看