<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          首頁

          前端js中動態添加的元素不能觸發綁定事件解決方法

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          問題描述:在頁面選擇關鍵詞時,需要將關鍵詞元素綁定點擊事件使同一類型的關鍵詞只有一個固定class,使其隨點擊更換,目的是為了讓這一類型的關鍵詞的值可以由class獲取。在原本寫死的關鍵詞上綁定的事件是可用的,但是換成動態加載后發現只能適用于寫死的情況。很無奈,在網上搜索一番后花了點時間終于解決了,下面奉上。  

          參考文章:https://blog.csdn.net/qq_35129893/article/details/78363211?locationNum=2&fps=1

          原本綁定事件如下:

          [javascript] view plain copy
          1. //查詢條件class的加載和移除(不能綁定動態加載的標簽)  
          2. $('.value_list').children.click(function(){     
          3.     $(this).addClass('a-time').siblings().removeClass('a-time');  

          針對的HTML元素如下:

          [html] view plain copy
          1. <div class="value_list value_list1" style="width: 80%;" id="subject">  
          2.     <span class="mr36" onclick="selectTopic(0)" value="0">全部</span>  
          3.     <a href="javascript:;" onclick="selectTopic("6eac9783353d40bba49e6b253e73f285")" value="dayu" types="subject" class="a-time">dayu</a>  
          4.     <a href="javascript:;" onclick="selectTopic("f9cbaa888cf34a99b6c50bf393e1a859")" value="天下會" types="subject" class="">天下會</a>  
          5.     <a href="javascript:;" onclick="selectTopic("3f4aa8924c88466dafc63d52aa57e7a6")" value="大雨" types="subject">大雨</a>  
          6.     <a href="javascript:;" onclick="selectTopic("87259765e9174a3b9d97f00a461e90bd")" value="士大夫" types="subject" class="">士大夫</a>  
          7. </div>  

          但是發現,原先的事件不能用于動態加載的元素,如上面加載的,加載形式如下:

          [javascript] view plain copy
          1. //獲取關鍵詞列表  
          2. function getlist(){  
          3.     $("#subject").html("");  
          4.     $.ajax({  
          5.         type: "POST",  
          6.         url:path+"/key/queryKeys.php",  
          7.         dataType : "json",  
          8.         success: function(result) {  
          9.             var data = result.data;  
          10.             console.log(data+" 888");  
          11.             if(data!=''){  
          12.                 var html='<span class="a-time mr36" onclick="selectTopic(0)" value="0">全部</span>';  
          13.                 for(var i=0;i<data.length;i++){//如果不加"則只能傳遞數字變量而不能傳遞帶有字母的變量,加上"則無影響  
          14.                 //  html+='<li class="fl"><i class="iconfont close" onclick="del("'+data[i].kw_id+'")"></i>'+data[i].kw_word+'</li>';  
          15.                     html+='<a href="javascript:;" onclick="selectTopic("'+data[i].kw_id+'")" value="'+data[i].kw_word+'" types="subject">'+data[i].kw_word+'</a>'  
          16.                 }                             
          17.                 $("#subject").html(html);  
          18.             }else{  
          19.                 alert("請先登陸!");   
          20.             }  
          21.         }  
          22.          });   
          23. }  

          無奈,只能上網尋求萬能的大神了。

          基本上提供的解決方案就兩個,使用

          $('element').live('click',function(){})

          或者

          $('父元素').on('click', '子元素', function(){})

          我先是使用.live嘗試了下,發現gg,心灰意冷ing;本著試一試不要錢的心態又用.on試了下,結果令人驚喜??!可以使用了,哎,這鬼玩意坑死人。

          下面上針對我加載的界面元素寫的綁定事件:

          [javascript] view plain copy
          1. //查詢條件class的加載和移除(適用于動態加載標簽的情況--on事件需要jquery在1.6以上)  
          2. $('.value_list').on('click','a,span',function(){  
          3.     $(this).addClass('a-time').siblings().removeClass('a-time');  
          4. ;  

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          懶加載封裝實現

          周周

          1.什么是懶加載?
                   當訪問一個頁面的時候,先把img元素背景圖片路徑替換成一張替代圖片的路徑(這樣就只需請求一次,占位圖),將圖片的真實路徑存儲在img自定義屬性中,只有當圖片出現在瀏覽器的可視區域內時,才設置圖片正真的路徑,讓圖片顯示出來。這就是圖片懶加載。
          2.為什么要用懶加載?
                 很多頁面,內容很豐富,頁面很長,圖片較多。比如說各種商城頁面。這些頁面圖片數量多,而且比較大,少說百來K,多則上兆。要是頁面載入就一次性加載完畢,提高首屏加載速度,可以減輕服務器壓力,節約流量,用戶體驗好。
          3.懶加載實現封裝?

              lazyLoad由四個函數組成,init(初始化函數),checkShow(判斷圖片是否加載),shouldShow(將要展示的圖片),showImg(展示圖片)。

          (1)初始化函數(init)  由于滾動事件太消耗性能,所以用定時器替換,不是滾動就觸發,而是滾動后200毫秒后觸發。

                          var timer;
                          function init(){
                              $(window).on("scroll",function(){
                                  if(timer){
                                      clearTimeout(timer);
                                  }
                                  timer = setTimeout(function(){
                                      checkShow();  //
                                  },200);
                              });
                          }

          (2)判斷”圖片是否加載“(checkshow)函數,如果圖片有isload屬性,就說明圖片已經加載過了,直接return。如果圖片沒有isload屬性,進入將要展示圖片shouldshow函數

                          function checkShow(){
                              $lazyLoad.each(function(){
                                  $cur = $(this);
                                  if($cur.attr('isLoaded')){
                                      return;
                                  }
                                  if(shouldShow($cur)){
                                      showImg($cur);
                                  }
                              });
                          }

          (3)將要展示圖片shouldshow函數,獲取屏幕可視寬度,滾動高度,要展示的元素到文檔的高度,如果元素到文檔的高度小于屏幕的可視高度加上滾動高度,說明元素已在可視區內,返回true,否則返回false。

                         function shouldShow ($node){
                              var scrollH = $(window).scrollTop(),
                                  windowH = $(window).height(),
                                  top = $node.offset().top;
                              if(top < windowH + scrollH){
                                  return true;
                              } else {
                                  return false;
                              }

                          }

          (4)“展示圖片”函數,將元素的src屬性替換為自定義屬性data-src(真正圖片的地址)。

                          function showImg ($node){
                              $node.find("img").attr("src",$node.data("src"));
                              $node.attr("isLoaded",true);
                          }

          (5)函數返回一個對象

                        return {
                                  init : init
                     }

                這樣就實現懶加載封裝了!

          微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          1.把wxParse文件全部放入項目。

          2.在wxml中import wxParse.wxml,并把template插入到到對應的位置上

          [html] view plain copy
          1. <!--wxml-->  
          2. <import src="../../../wxParse/wxParse.wxml"/>  
          3. <view class="view-title">{{title}}</view>  
          4. <view class="view-time-box">  
          5.   <text class="view-date">{{date}}</text>  
          6.   <text class="view-time">{{time}}</text>  
          7. </view>  
          8. <template is="wxParse" data="{{wxParseData:article.nodes}}"/>  

          3.在wxss中import wxParse.wxss,并設置樣式;比如‘wxParse-image’是富文本圖片轉化成image組件之后的類名,‘wxParse-p’是p標簽轉化成view組件后設置的類名

          [css] view plain copy
          1. <!--wxss-->  
          2. @import "../../../wxParse/wxParse.wxss";  
          3. page{  
          4.   background#fff;  
          5. }  
          6. .view-title{  
          7.   line-height80rpx;  
          8.   font-size48rpx;  
          9.   color:#0C0C0C;  
          10.   overflowhidden;  
          11.   text-overflow: ellipsis;  
          12.   display: -webkit-box;  
          13.   -webkit-line-clamp: 2;  
          14.   -webkit-box-orient: vertical;  
          15.   max-height190rpx;  
          16.   min-height80rpx;  
          17.   width:690rpx;  
          18.   padding:30rpx 30rpx 0;  
          19. }  
          20. .view-time-box{  
          21.   height66rpx;  
          22.   line-height66rpx;  
          23.   font-size30rpx;  
          24.   color:#999999;  
          25.   margin-bottom40rpx;  
          26.   padding:0 30rpx;  
          27. }  
          28. .view-date{  
          29.   margin-right20rpx;  
          30. }  
          31. .wxParse-img{  
          32.   margin-top:20rpx;  
          33.   displayblock;  
          34.   position:relative;  
          35.   top:0;  
          36.   left:50%;  
          37.   transform: translateX(-50%);  
          38. }  
          39. .wxParse-p{  
          40.   text-indent2em;  
          41.   margin-top:20rpx;  
          42.   color:#0C0C0C;  
          43.   line-height:50rpx;  
          44.   font-size:34rpx;  
          45.   padding:0 30rpx 30rpx;  
          46.   text-alignjustify;  
          47. }  

          4.js

          [javascript] view plain copy
          1. var WxParse = require('../../../wxParse/wxParse.js');  
          2. Page({  
          3.   
          4.   /** 
          5.    * 頁面的初始數據 
          6.    */  
          7.   data: {  
          8.     title: '',  
          9.     date: "",  
          10.     time: "",  
          11.     id: ''  
          12.   },  
          13.   
          14.   /** 
          15.    * 生命周期函數--監聽頁面加載 
          16.    */  
          17.   onLoad: function (options) {  
          18.     this.setData({  
          19.       id:options.id  
          20.     })  
          21.   },  
          22.   onShow: function () {  
          23.     wx.showLoading({  
          24.       title: '加載中...',  
          25.     })  
          26.     var that = this;  
          27.   
          28.     // 模擬獲取數據  
          29.     setTimeout(function () {  
          30.       that.setData({  
          31.         title:'僑寶柑普茶新會陳皮僑寶柑',  
          32.         date:"2018-03-01",  
          33.         time:"13:20:53"  
          34.       })  
          35.       var article = `  
          36.         <img src="../../../imgs/index/s.png"></img>  
          37.     <p>微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)</p>  
          38.     <p>微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)</p>  
          39.         <img src="../../../imgs/index/s.png"></img>  
          40.     <p>近兩年,小青柑的火爆有目共睹,嬌小玲瓏的產品形態、便攜式的消費場景、柑與茶結合的時尚方式以及獨特的口感和養生功效,都在順應著目前年輕化、多元化、便攜化的茶葉消費市場需求,讓它成為了一大爆品。</p>  
          41.       `;  
          42.       /** 
          43.       * WxParse.wxParse(bindName , type, data, target,imagePadding) 
          44.       * 1.bindName綁定的數據名(必填) 
          45.       * 2.type可以為html或者md(必填) 
          46.       * 3.data為傳入的具體數據(必填) 
          47.       * 4.target為Page對象,一般為this(必填) 
          48.       * 5.imagePadding為當圖片自適應是左右的單一padding(默認為0,可選) 
          49.       */  
          50.       WxParse.wxParse('article''html', article, that, 20);  
          51.         
          52.       // 更改數據、獲取新數據完成  
          53.       wx.hideLoading();  
          54.     }, 500)  
          55.   }  
          56. })  
          具體的API可以去GitHub上查看:https://github.com/icindy/wxParse








          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          js中常見的位置屬性-offset,scroll,client系列

          周周

          前言
                 Javascript中的offset、scroll、client系列都是比較常用的坐標屬性,也是比較容易混淆的知識點。
          offset家族
                 offset家族一般在節點對象里面使用。
                 offsetParent
                       1.    如果當前元素的父級元素沒有進行css定位(position為absolute或relative),offsetParent為body。
                       2.    如果當前元素的父級元素中有css定位(position為absolute或relative),offsetParent取最近的那個父級元素。
                 offsetLeft/Top計算規則:
                       標準流、浮動、非脫標定位
                        offsetLeft = 自己的margin+offsetParent的margin、padding、border
                        脫標定位
                        offsetLeft = 自己的left + margin-left
                  注意:與stlye.left的區別
                        offsetLeft只可讀,不可寫。也就是說,通過offsetLeft只能獲取元素的左偏移值,而無法去設置元素的左偏移值。
                         stlye.left可讀可寫,但是通過style.left獲取元素的偏移值,是一個帶單位的字符串,例如“100px”。

                      (offsetTop同理)

                  offsetWidth(和offsetHeight:

                  其實就是一個元素的實際寬度 = width+padding+border

          client家族】

                  clientWidth (clientHeight) = width+padding

                        該屬性指的是元素的可視部分寬度和高度

                        假如元素有padding有滾動,且滾動是顯示的

                        clientWidth = width + padding - 滾動軸寬度

                 clientTop(clientLeft):

                       這一對屬性是用來讀取元素的border的寬度和高度的

                       clientTop = border-top 的 border-width

                       clientLeft = border-left 的 border-width

          【scroll家族】

          150537.jpg.png

            如上圖所示
                 scrollWidth(和scrollHeight
                    無滾動軸時:scrollWidth = clientWhidth = width + padding
                    有滾動軸時:scrollWidth = 實際內容的寬度 + padding
                 scrollTop(和scrollLeft
                     這對元素是可讀寫的,指的是當元素其中的內容超出其寬高的時候,元素被卷起的寬度和高度
          【事件里面的clientX,offsetX,screenX


          • event.clientX:設置或獲取鼠標指針位置相對于當前窗口的 x 坐標,其中客戶區域不包括窗口自身的控件和滾動條
          • event.clientY:設置或獲取鼠標指針位置相對于當前窗口的 y 坐標,其中客戶區域不包括窗口自身的控件和滾動條
          • vent.offsetX:設置或獲取鼠標指針位置相對于觸發事件的對象的 x 坐標
          • event.offsetY:設置或獲取鼠標指針位置相對于觸發事件的對象的 y 坐標
          • event.screenX 設置或獲取獲取鼠標指針位置相對于用戶屏幕的 x 坐標。
          • event.screenY設置或獲取鼠標指針位置相對于用戶屏幕的 y 坐標。


          【window系列】
          • window.innerHeight指的是瀏覽器窗口顯示html文檔的可視區域的高度
          • window.outerHeight指的是瀏覽器窗口的高度 ,包括了工具欄,地址欄等等高度

                 window.screen包含了屏幕的信息
          • window.screen.width   電腦屏幕的整個寬度
          • window.screen.availWidth   電腦屏幕除去菜單條之后的寬度
          • window.screen.left   瀏覽器窗口的左上角距離電腦屏幕最左側的距離。




          HTML5網頁掃描二維碼

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          [HTML]代碼

          <!DOCTYPE html>
          <html>
          <head>
              <title>二維碼掃描測試</title>
              <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head>
          <style type="text/css">
              html, body {
                  height: 100%;
                  width: 100%;
                  text-align: center;
              }
          </style>
          <script src="../js/jquery-1.11.1.min.js"></script>
          <script>
              //這段代 主要是獲取攝像頭的視頻流并顯示在Video 簽中
              var canvas = null, context = null, video = null;
              window.addEventListener("DOMContentLoaded", function () {
                  try {
                      canvas = document.getElementById("canvas");
                      context = canvas.getContext("2d");
                      video = document.getElementById("video");
                      var videoObj = { "video": true, audio: false },
                          flag = true,
                          MediaErr = function (error) {
                              flag = false;
                              if (error.PERMISSION_DENIED) {
                                  alert('用戶拒絕了瀏覽器請求媒體的權限', '提示');
                              } else if (error.NOT_SUPPORTED_ERROR) {
                                  alert('對不起,您的瀏覽器不支持拍照功能,請使用其他瀏覽器', '提示');
                              } else if (error.MANDATORY_UNSATISFIED_ERROR) {
                                  alert('指定的媒體類型未接收到媒體流', '提示');
                              } else {
                                  alert('系統未能獲取到攝像頭,請確保攝像頭已正確安裝?;驀L試刷新頁面,重試', '提示');
                              }
                          };
                      //獲取媒體的兼容代碼,目前只支持(Firefox,Chrome,Opera)
                      if (navigator.getUserMedia) {
                          //qq瀏覽器不支持
                          if (navigator.userAgent.indexOf('MQQBrowser') > -1) {
                              alert('對不起,您的瀏覽器不支持拍照功能,請使用其他瀏覽器', '提示');
                              return false;
                          }
                          navigator.getUserMedia(videoObj, function (stream) {
                              video.src = stream;
                              video.play();
                          }, MediaErr);
                      }
                      else if (navigator.webkitGetUserMedia) {
                          navigator.webkitGetUserMedia(videoObj, function (stream) {
                              video.src = window.webkitURL.createObjectURL(stream);
                              video.play();
                          }, MediaErr);
                      }
                      else if (navigator.mozGetUserMedia) {
                          navigator.mozGetUserMedia(videoObj, function (stream) {
                              video.src = window.URL.createObjectURL(stream);
                              video.play();
                          }, MediaErr);
                      }
                      else if (navigator.msGetUserMedia) {
                          navigator.msGetUserMedia(videoObj, function (stream) {
                              $(document).scrollTop($(window).height());
                              video.src = window.URL.createObjectURL(stream);
                              video.play();
                          }, MediaErr);
                      } else {
                          alert('對不起,您的瀏覽器不支持拍照功能,請使用其他瀏覽器');
                          return false;
                      }
                      if (flag) {
                          //alert('為了獲得更準確的測試結果,請盡量將二維碼置于框中,然后進行拍攝、掃描。 請確保瀏覽器有權限使用攝像功能');
                      }
                      //這個是拍照按鈕的事件,
                      $("#snap").click(function () { startPat(); }).show();
                  } catch (e) {
                      printHtml("瀏覽器不支持HTML5 CANVAS");
                  }
              }, false);
              //打印內容到頁面
              function printHtml(content) {
                  $(window.document.body).append(content + "<br/>");
              }
              //開始拍照
              function startPat() {
                  setTimeout(function () {//防止調用過快
                      if (context) {
                          context.drawImage(video, 0, 0, 320, 320);
                          CatchCode();
                      }
                  }, 200);
              }
              //抓屏獲取圖像流,并上傳到服務器
              function CatchCode() {
                  if (canvas != null) {
                      //以下開始編 數據
                      var imgData = canvas.toDataURL("image/jpeg");
                      //將圖像轉換為base64數據
                      var base64Data = imgData; //在前端截取22位之后的字符串作為圖像數據
                      $.ajax({
                          type: 'post',
                          url: '../ashx/HandlerScan.ashx?method=ParseImage',
                          data: 'ImgData=' + base64Data,
                          dataType: "json",
                          cache: false,
                          timeout: 10000,
                          success: function (mes) {
                              if (mes.code == '1') {
                                  alert('未識別二維碼,請重新掃描!');
                              }
                              else {
                                  alert(mes.name);
                              }
                          },
                          error: function (err) {
                              alert('掃描失敗' + err);
                          }
                      });
                  }
              }
          </script>
          <body>
              <div id="support"></div>
              <div id="contentHolder">
                  <video id="video" width="320" height="320" autoplay></video>
                  <canvas id="canvas" style="display:none; background-color:#F00;" width="320" height="320"></canvas><br/>
                  <button id="snap" style="display:none; height:50px; width:120px;">開始掃描</button>
              </div>
          </body>
          </html>  

          [C#后臺]

              public class HandlerScan : IHttpHandler
              {
                  private JsonResult js = new JsonResult();
                  public void ProcessRequest(HttpContext context)
                  {
                      string result = string.Empty;
                      string method = context.Request.QueryString.ToString();//獲取想要做的操作
                      switch (method)
                      {
                          case "method=ParseImage":
                              result = ParseImage(context);
                              break;
                          default:
                              break;
                      }
                      context.Response.ContentType = "text/json";
                      context.Response.Write(result);
                  }
                  private string ParseImage(HttpContext context)
                  {
                      try
                      {
                          string imgStr = context.Request.Params["ImgData"].ToString();
                          imgStr = imgStr.Replace("data:image/jpeg;base64,", "");
                          //整理字符串
                          imgStr = imgStr.Replace(" ", "+");
                          byte[] arr = Convert.FromBase64String(imgStr);
                          MemoryStream ms = new MemoryStream(arr, 0, arr.Length);
                          Bitmap bmp = new Bitmap(ms);
                          //解析圖片
                          Result result = new BarcodeReader().Decode(bmp);
                          if(result == null)
                          {
                              return "{\"code\":1,\"name\":\"\"}";
                          }
                          else
                          {
                              string[] a = result.Text.Split(','); 
                              string str = "{\"code\":0,\"name\":\"" + a[0] + "\"}";
                              return str; 
                          }
                      }
                      catch (Exception ex)
                      {
                          return "{\"code\":1,\"msg\":\"" + ex.Message + "\",\"userName\":\"\"}";
                      }
                  }
                  public bool IsReusable
                  {
                      get
                      {
                          return false;
                      }
                  }
              }
          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          1.把wxParse文件全部放入項目。

          2.在wxml中import wxParse.wxml,并把template插入到到對應的位置上

          [html] view plain copy
          1. <!--wxml-->  
          2. <import src="../../../wxParse/wxParse.wxml"/>  
          3. <view class="view-title">{{title}}</view>  
          4. <view class="view-time-box">  
          5.   <text class="view-date">{{date}}</text>  
          6.   <text class="view-time">{{time}}</text>  
          7. </view>  
          8. <template is="wxParse" data="{{wxParseData:article.nodes}}"/>  

          3.在wxss中import wxParse.wxss,并設置樣式;比如‘wxParse-image’是富文本圖片轉化成image組件之后的類名,‘wxParse-p’是p標簽轉化成view組件后設置的類名

          [css] view plain copy
          1. <!--wxss-->  
          2. @import "../../../wxParse/wxParse.wxss";  
          3. page{  
          4.   background#fff;  
          5. }  
          6. .view-title{  
          7.   line-height80rpx;  
          8.   font-size48rpx;  
          9.   color:#0C0C0C;  
          10.   overflowhidden;  
          11.   text-overflow: ellipsis;  
          12.   display: -webkit-box;  
          13.   -webkit-line-clamp: 2;  
          14.   -webkit-box-orient: vertical;  
          15.   max-height190rpx;  
          16.   min-height80rpx;  
          17.   width:690rpx;  
          18.   padding:30rpx 30rpx 0;  
          19. }  
          20. .view-time-box{  
          21.   height66rpx;  
          22.   line-height66rpx;  
          23.   font-size30rpx;  
          24.   color:#999999;  
          25.   margin-bottom40rpx;  
          26.   padding:0 30rpx;  
          27. }  
          28. .view-date{  
          29.   margin-right20rpx;  
          30. }  
          31. .wxParse-img{  
          32.   margin-top:20rpx;  
          33.   displayblock;  
          34.   position:relative;  
          35.   top:0;  
          36.   left:50%;  
          37.   transform: translateX(-50%);  
          38. }  
          39. .wxParse-p{  
          40.   text-indent2em;  
          41.   margin-top:20rpx;  
          42.   color:#0C0C0C;  
          43.   line-height:50rpx;  
          44.   font-size:34rpx;  
          45.   padding:0 30rpx 30rpx;  
          46.   text-alignjustify;  
          47. }  

          4.js

          [javascript] view plain copy
          1. var WxParse = require('../../../wxParse/wxParse.js');  
          2. Page({  
          3.   
          4.   /** 
          5.    * 頁面的初始數據 
          6.    */  
          7.   data: {  
          8.     title: '',  
          9.     date: "",  
          10.     time: "",  
          11.     id: ''  
          12.   },  
          13.   
          14.   /** 
          15.    * 生命周期函數--監聽頁面加載 
          16.    */  
          17.   onLoad: function (options) {  
          18.     this.setData({  
          19.       id:options.id  
          20.     })  
          21.   },  
          22.   onShow: function () {  
          23.     wx.showLoading({  
          24.       title: '加載中...',  
          25.     })  
          26.     var that = this;  
          27.   
          28.     // 模擬獲取數據  
          29.     setTimeout(function () {  
          30.       that.setData({  
          31.         title:'僑寶柑普茶新會陳皮僑寶柑',  
          32.         date:"2018-03-01",  
          33.         time:"13:20:53"  
          34.       })  
          35.       var article = `  
          36.         <img src="../../../imgs/index/s.png"></img>  
          37.     <p>微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)</p>  
          38.     <p>微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)</p>  
          39.         <img src="../../../imgs/index/s.png"></img>  
          40.     <p>近兩年,小青柑的火爆有目共睹,嬌小玲瓏的產品形態、便攜式的消費場景、柑與茶結合的時尚方式以及獨特的口感和養生功效,都在順應著目前年輕化、多元化、便攜化的茶葉消費市場需求,讓它成為了一大爆品。</p>  
          41.       `;  
          42.       /** 
          43.       * WxParse.wxParse(bindName , type, data, target,imagePadding) 
          44.       * 1.bindName綁定的數據名(必填) 
          45.       * 2.type可以為html或者md(必填) 
          46.       * 3.data為傳入的具體數據(必填) 
          47.       * 4.target為Page對象,一般為this(必填) 
          48.       * 5.imagePadding為當圖片自適應是左右的單一padding(默認為0,可選) 
          49.       */  
          50.       WxParse.wxParse('article''html', article, that, 20);  
          51.         
          52.       // 更改數據、獲取新數據完成  
          53.       wx.hideLoading();  
          54.     }, 500)  
          55.   }  
          56. })  
          具體的API可以去GitHub上查看:https://github.com/icindy/wxParse








          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          微信小程序學習參考demo源碼集合

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          微信小程序學習參考demo源碼集合,僅供參考學習用途?。?!

          面對面翻譯 微信小程序源碼下載,語音翻譯類小程序工具http://www.henkuai.com/thread-37499-1-1.html

          開源微信小程序,小團隊管理小程序下載 :http://www.henkuai.com/thread-37498-1-1.html

          微信小程序多用戶商城demo,還在開發中:http://www.henkuai.com/thread-37497-1-1.html

          微信小程序搶課列表demo :http://www.henkuai.com/thread-37496-1-1.html

          微信小程序地圖實時顯示demo:http://www.henkuai.com/thread-37495-1-1.html

          高質量微信小程序UI組件庫:http://www.henkuai.com/thread-37492-1-1.html

          購房搖號助手微信小程序下載:http://www.henkuai.com/thread-37471-1-1.html

          股票金融微信小程序客戶端:http://www.henkuai.com/thread-37470-1-1.html
          接龍微信小程序腳本,創建房間等等:http://www.henkuai.com/thread-37469-1-1.html
          微信小程序統一中央服務器的思路,校園小情書聯盟:http://www.henkuai.com/thread-37468-1-1.html
          輔導員預約微信小程序:http://www.henkuai.com/thread-37467-1-1.html
          仿星巴克用心說微信小程序:http://www.henkuai.com/thread-37466-1-1.html
          微信小程序頂部滑動導航菜單欄:http://www.henkuai.com/thread-37465-1-1.html
          微信小程序朋友圈點贊功能,讓你的朋友圈秀起來:http://www.henkuai.com/thread-37464-1-1.html
          微信小程序版 “前端TOP100”:http://www.henkuai.com/thread-37463-1-1.html
          微信小程序3D輪播圖效果示例:http://www.henkuai.com/thread-37459-1-1.html
          微信小程序仿滴滴打車小程序源碼下載,歡迎加入開發:http://www.henkuai.com/thread-37458-1-1.html
          微信小程序仿青桔單車,打開地圖掃碼開鎖:http://www.henkuai.com/thread-37436-1-1.html
          微信小程序投票器,投票小程序源碼:http://www.henkuai.com/thread-37434-1-1.html
          微信小程序時間軸源碼,記錄中國LGBT事件:http://www.henkuai.com/thread-37433-1-1.html
          微信小程序api攔截器,完美兼容原生小程序項目:http://www.henkuai.com/thread-37431-1-1.html
          微信小程序使用map組件實現多點定位顯示:http://www.henkuai.com/thread-37421-1-1.html
          微信小程序商城前端,展示嬰幼兒商品: http://www.henkuai.com/thread-37418-1-1.html
          答題小程序免費送,有人用這個“小程序”每天做100000:http://www.henkuai.com/thread-37412-1-1.html

          使用微信小程序map組件開發的一個demo,各種坑:http://www.henkuai.com/thread-37400-1-1.html

          微信小游戲2048源碼下載,經典的小游戲:http://www.henkuai.com/thread-37399-1-1.html

          微信小程序-菜譜百科,小程序開發學習demo :http://www.henkuai.com/thread-37380-1-1.html

          鮮切水果微信小程序,水果商城小程序:http://www.henkuai.com/thread-37379-1-1.html

          微信小程序線上圖書館前端+后端源碼下載,圖書查詢小程序 :http://www.henkuai.com/thread-37378-1-1.html

          微信小程序日歷打卡項目下載,輕巧好用的日歷打卡組件:http://www.henkuai.com/thread-37367-1-1.html

          微信小程序練手項目,包含抽屜效果、底部tab效果實現等:http://www.henkuai.com/thread-37365-1-1.html

          【獨立小程序】志匯餐飲8.6 小程序前端修復版本:http://www.henkuai.com/thread-37344-1-1.html

          仿今日頭條3.0 小程序前端 demo分享:http://www.henkuai.com/thread-37338-1-1.html

          微信小程序真心話大冒險游戲,朋友聚會必備小程序:http://www.henkuai.com/thread-37337-1-1.html

          微信小游戲頭腦王者自動答題輔助插件,小游戲作弊工具:http://www.henkuai.com/thread-37336-1-1.html

          微信小程序左滑操作自定義組件,讓你的小程序開發更:http://www.henkuai.com/thread-37334-1-1.html

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          常用正則表達式20例

          周周

             總結了工作中可能經常會用到的各類正則表達式的寫法。
             方便以后進行查找,減少工作量。

             1. 校驗基本日期格式

          var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
          var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/;

             2. 校驗密碼強度
             密碼的強度必須是包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間。

          var reg = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/;

             3. 校驗中文 

             字符串僅能是中文。

          var reg = /^[\\u4e00-\\u9fa5]{0,}$/; 4. 由數字、26個英文字母或下劃線組成的字符串 var reg = /^\\w+$/; 5. 校驗E-Mail 地址
          同密碼一樣,下面是E-mail地址合規性的正則檢查語句。
          var reg = /[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/; 6. 校驗身份證號碼
          下面是身份證號碼的正則校驗。15 或 18位。
          15位: var reg = /^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$/; 18位: var reg = /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/; 7. 校驗日期
          “yyyy-mm-dd” 格式的日期校驗,已考慮平閏年。 var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/; 8. 校驗金額
          金額校驗,到2位小數。 var reg = /^[0-9]+(.[0-9]{2})?$/; 9. 校驗手機號
          下面是國內 13、15、18開頭的手機號正則表達式。(可根據目前國內收集號擴展前兩位開頭號碼) var reg = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$/;    10. 判斷IE的版本
             IE目前還沒被完全取代,很多頁面還是需要做版本兼容,下面是IE版本檢查的表達式。

          var reg = /^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\\/[5-9]\\.0).*$/;

                11. 校驗IP-v4地址

          var reg = /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/;

               12. 校驗IP-v6地址

          var reg = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/;

                13. 檢查URL的前綴
             應用開發中很多時候需要區分請求是HTTPS還是HTTP,通過下面的表達式可以取出一個url的前綴然后再邏輯判斷。

          if (!s.match(
              /^[a-zA-Z]+:\/\//
            )) {
            s =
              'http://' +
              s;

          }

                14. 提取URL鏈接
             下面的這個表達式可以篩選出一段文本中的URL。

          var reg = /^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/;    15. 文件路徑及擴展名校驗
             驗證 windows下文件路徑和擴展名(下面的例子中為.txt文件)
          var reg = /^([a-zA-Z]\\:|\\\\)\\\\([^\\]+\\)*[^\\/:*?"<>|]+\\.txt(l)?$/;       16. 提取Color Hex Codes
             有時需要抽取網頁中的顏色代碼,可以使用下面的表達式。
          var reg = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/; 17. 提取網頁圖片
             假若你想提取網頁中所有圖片信息,可以利用下面的表達式。
          var reg = /\\< *[img][^\\>]*[src] *= *[\\"\']{0,1}([^\\"\'\ >]*)/;    18. 提取頁面超鏈接
             提取html中的超鏈接。

          var reg = /(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\/\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>/;

             19. 查找CSS屬性
             通過下面的表達式,可以搜索到相匹配的CSS屬性。

          var reg = /^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}/;

             20. 抽取注釋
             如果你需要移除HMTL中的注釋,可以使用如下的表達式。

          var reg = /<!--(.*?)-->/;

          淺談jQuery之動畫

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          背景

          jQuery提供了JS未能提供的動畫效果,利用jQuery的動畫效果,可以極大的簡化JS動畫部分的邏輯

          滑入滑出動畫

          1. 滑入動畫

            定義:以下拉方式動畫效果將html內容顯示出來

            使用方式:

            $(selector).slideDown(time,function) 
            $(selector).slideDown(2000) 
            $(selector).slideDown() 
            $(selector).slideDown(fast/normal/slow)

            time代表執行動畫的時間,function代表動畫執行完之后所要執行的函數

          2. 滑出動畫

            定義:以上滑方式動畫效果將html內容隱藏出來

            使用方式:

            $(selector).slideUp(time,function) 
            $(selector).slideUp(2000) 
            $(selector).slideUp() 
            $(selector).slideUp(fast/normal/slow)

            time代表執行動畫的時間,function代表動畫執行完之后所要執行的函數

          3. 滑入滑出切換動畫

            定義:在滑入滑出動畫間切換

            使用方式:

            $(selector).slideToggle(time,function) 
            $(selector).slideToggle(2000) 
            $(selector).slideToggle() 
            $(selector).slideToggle(fast/normal/slow)

          淡入淡出動畫

          1. 淡入動畫

            作用:讓元素以淡淡的進入視線的方式展現出來

            使用方式

            $(selector).fadeIn(time,function) 
            $(selector).fadeIn(2000) 
            $(selector).fadeIn() 
            $(selector).fadeIn(fast/normal/slow)

          2. 淡出動畫

            作用:讓元素以淡淡的離開視線的方式隱藏起來

            使用方式

            $(selector).fadeOut(time,function) 
            $(selector).fadeOut(2000) 
            $(selector).fadeOut() 
            $(selector).fadeOut(fast/normal/slow)

          3. 淡入淡出切換動畫

            作用:讓元素在淡入淡出動畫切換

            使用方式

            $(Selector).fadeToggle(time,function) 
            $(selector).fadeToggle(2000) 
            $(selector).fadeToggle() 
            $(selector).fadeToggle(fast/normal/slow)

          4. 修改opacity

            作用: 修改opacity的值

            使用方式

            $(Selector).fadeTo(time,opacity,function) 
            time可以是字符串,可以是具體數字 
            也可只有參數一、參數二

          顯示隱藏動畫

          1. 顯示動畫

            作用: 將Html結構顯現出來

            使用方式

            $(Selector).show(time,function) 
            $(selector).show(2000) 
            $(selector).show() 
            $(selector).show(fast/normal/slow)

          2. 隱藏動畫

            作用: 將Html結構隱藏起來

            使用方式

            $(Selector).hide(time,function) 
            $(selector).hide(2000) 
            $(selector).hide() 
            $(selector).hide(fast/normal/slow)

          停止動畫

          • 定義:停止正在執行的動畫

          • 使用方式:

            $(selector).stop() 
            stop()中可以有兩個參數,參數一:后續動畫是否執行,參數二:當前動畫是否執行完畢,默認的是(false,false),注意第一個參數,true代表的是后續動畫不執行 
            ———————————————————————————— 
            第一種:(false,false) 
            后續動畫會執行,當前動畫不會執行完 
            第二種:(false,true) 
            后續動畫會執行,當前動畫會執行完 
            第三種:(true,false) 
            后續動畫不會執行,當前動畫不會執行完 
            第四種:(true,true) 
            后續動畫不會執行,當前動畫會執行完

          自定義動畫

          • 作用:執行一組CSS屬性的自定義動畫

          • 使用方式:

            $(selector).animate({CSS定義},time,function())

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          基于jQuery的select2下拉框

          周周

          select2簡介】
                 select2.js是一個html select美化模擬類jquery插件,但是select2.js又遠非簡單的模擬美化那么簡單,它還具有搜索功能,多選功能(可限制選擇數量),ajax方式加載數據,可以設置placeholder……
          【引入文件】
                <linkrel="stylesheet" href="./css/select2.css">
                <scriptsrc="./js/jquery-2.1.0.js"></script>
                <scriptsrc="./js/select2.full.js"></script>
          select2的簡單用法】


          • 設置禁用狀態disabled,如:$(".js-example-disabled").prop("disabled",false);
          • 默認值設置:$("#select2").val("1").trigger("change");
          • 多選的默認值可以使用:$("#select2").val(["1","2"]).trigger("change"); 這樣傳遞數組過
          • select2還有豐富的自定義事件

            JavaScript

          $("#select2").on("select2:open", function (e) { log("select2:open", e); });
           
          $("#select2").on("select2:close", function (e) { log("select2:close", e); });
           
          $("#select2").on("select2:select", function (e) { log("select2:select", e); });
           
          $("#select2").on("select2:unselect", function (e) { log("select2:unselect", e); });
           
          $("#select2").on("change", function (e) { log("change"); });


          select2的其他組件】

                一、多選效果
                效果圖

          161511wc0em4p5ictpk0k6.gif



          代碼如下
          Html代碼

          <div class="box1 div">

             <p>多選下拉框</p>

          <select id="sel_menu1" multiple="multiple" class="form-control">

            <optgroup label="系統設置">

            <option value="1">用戶管理</option>

            <option value="2">角色管理</option>

            <option value="3">部門管理</option>

            <option value="4">菜單管理</option>

            </optgroup>

            <optgroup label="訂單管理">

            <option value="5">訂單查詢</option>

            <option value="6">訂單導入</option>

            <option value="7">訂單刪除</option>

            <option value="8">訂單撤銷</option>

            </optgroup>

            <optgroup label="基礎數據">

            <option value="9">基礎數據維護</option>

            </optgroup>

            </select>

          </div>


          JS代碼

          $("#sel_menu1").select2({[/align]
                   tags: true,
                   maximumSelectionLength: 3 //最多能夠選擇的個數

                });


          二、圖文結合效果
          效果圖

          161544vqrri760rldcbg5d.gif


          代碼

          Html代碼

          <div class="box2 div">
               <p>圖文結合的效果</p>
               <select id="sel_menu2" class="js-example-templating js-states form-control">
                    <optgroup label="系統設置">
            <option value="1">用戶管理</option>
             <option value="2">角色管理</option>
             <option value="1">部門管理</option>
            <option value="1">菜單管理</option>
            </optgroup>
            <optgroup label="訂單管理">
            <option value="1">訂單查詢</option>
            <option value="1">訂單導入</option>
             <option value="1">訂單刪除</option>
            <option value="1">訂單撤銷</option>
             </optgroup>
            <optgroup label="基礎數據">
            <option value="1">基礎數據維護</option>
            </optgroup>
                </select>
          </div>

          JS代碼

          $("#sel_menu2").select2({
                      templateResult: formatState,
                      templateSelection: formatState
                  });
                  function formatState(state) {
                      if (!state.id) {
                          return state.text; 
                      }
            var $state = $('<span><img src="./image/' + state.element.value.toLowerCase() + '.png" class="img-flag" /> ' + state.text + '</span>'
                      );
                      return $state;
                  };


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合