最近在寫乙個移動端的單頁面,主要是放置到公司的平板系統上使用,需求如下:
頂部結合左側欄切換導航的頁面,頁面的主體是呈現數量不定的,同時保證頁面整體不可以縮放,但是頁面內部的可以縮放,頂部的每乙個導航項對應左側的乙個導航欄,左側的乙個導航項對應乙個序列的。
基於以上的需求,我選擇了以下的庫進行實現:
1、jquery:主要用它的選擇器功能,和事件註冊
2、vuejs:主要是為了方便資料渲染的方便
3、pinchzoom:是乙個支援多點手勢觸控進行元素縮放和拖拽的js庫。(
a.其使用條件為,依賴jquery庫或者zepto庫;
b.瀏覽器對ecma5支援
4、swiper:橫向或者縱向的導航項可能超過一螢幕,所以還需要考慮列表拖動
整體規劃好之後就開始實現了,實現的過程中碰到一些坑,如下:
1、vuejs中對設定src屬性時,不是直接通過
的形式,而是使用
的形式,如果通過前者會報js錯誤;
2、乙個dom元素在通過pinchzoom初始化構建之後,會在本身的外層包裹一層div元素,為pinch-zoom-container,元素本身也會被加上一些樣式屬性,如被設定成絕對定位,被進行縮放控制,被進行平移控制,而pinchzoom本身所提供的介面有限,沒有destroy之類的方法,所以我轉而考慮使用jquery找到由pinchzoom生成或者被其處理過的元素,將其全部remove掉。然後通過jquery構建新的dom元素,並對新的dom元素放置其內部內容,然後pinchzoom對新的dom元素進行初始化;
3、通過jquery改變vuejs例項中的$data物件之後,資料反映到文件中需要一小段時間,這段時間由vuejs決定,vuejs例項含有乙個$nexttick方法,要在資料改變後繼續執行與改變後的文件相關的邏輯,這些邏輯需要被放置到$nextick方法中才足夠安全。例如,我通過vuejs改變左側的導航欄目相關的資料,然後對左側的導航欄目中dom註冊swiper拖動控制,這個註冊swiper拖動控制的**就需要放置到vuejs例項的$nexttick方法的**函式中。
vuejs怎麼和thinkphp結合
vue在服務端部署時,我們都知道通過npm run build 指令打包好的dist檔案,通過http指定是可以直接瀏覽的,thinkphp通過網域名稱指向index.php檔案才可以瀏覽。要使前端正常呼叫後端資料。有兩種方法 1 前端跨域呼叫後端資料。2 前端打包檔案部署在後端的伺服器資料夾下 同...
結合php PHP與jQuery結合的功能
主要問題難點在於 獲取後台填充資料沒問題,但是當後台資料已失效,前台資料已獲取後,這種歷史遺留資料處理比較棘手,原來的資料填充和釋放只針對後台所有的資料,沒有把版本迭代後的狀態考慮進去,這裡的主要問題就是當使用者不重新整理頁面,還要解決後台傳輸的無效資料和有效資料的區分,不會在前台展現有效資料把無效...
bootstrap與jQuery結合的動態進度條
此款進度條實現的功能 1.利用了bootstrap的進度條元件。a.在最外層的中加入class progress,在裡層加入class progress bar從而實現基本的進度條。b.在外層中加入class progress striped實現條紋進度條。c.在內層加入class progress...