地區picker 各選擇器,優劣分析

来源:https://www.cnblogs.com/ovocake/archive/2018/11/27/10027340.html
-Advertisement-
Play Games

移動端選擇器picker有很多,各大ui組件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等。但是,我發現他們都有各種各樣的問題。這次的地區選擇,需要地區的省份+市+經緯度,還要設置第一次點開的時候是特定城市。 demo:鏈接:https://pan.baidu.com ...


移動端選擇器picker有很多,各大ui組件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等。但是,我發現他們都有各種各樣的問題。這次的地區選擇,需要地區的省份+市+經緯度,還要設置第一次點開的時候是特定城市。

demo:鏈接:https://pan.baidu.com/s/1n5ApFB4elywxD_QekhSW6Q 密碼:cd2k

分析一波問題:

先說light7,它的picker是最low的,data里只有選項,木有ID,更木有其他內容。雙聯三聯picker的時候想特定一個選項就更別說了,在彈窗里用的時候更是噁心,曾經改過它的源代碼,想讓它更實用一點,但只能用在普通選擇,這次的需求直接把它pass掉了。

HUI:它的picker比light7好一點點,data裡面可以放value和text。但是在雙聯的時候並不能設置特定城市,而且在快速滾動的時候,迅速點確定,會出現結果是北京而內容卻定格在天津的情況。

MUI:emmmm,這是一個最不要臉的框架:“最接近原生APP的前端框架”,以前拿它做過幾個P2P的APP,是挺簡單的,但是有很多奇怪的問題,比如和jquery各種衝突什麼的,這裡就不多說了。它的picker,只能設置單聯的特定城市,在快速滾動點確定的時候比HUI還要不堪,會出現廣西壯族自治區——南京......而且治不好。。。

最後選擇了mobile Picker:這個東西暫時沒發現類似上面那些框架的毛病,起碼在這次的需求是完全滿足的。

 

<!doctype html>
<html lang="zh-cn">

    <head>
        <meta charset="UTF-8">
        <title>mobileSelect Demo</title>
        <meta name="renderer" content="webkit|ie-comp|ie-stand">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="wap-font-scale" content="no">
        <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1,user-scalable=no">
        <meta name="keywords" content="">
        <meta name="description" content="">

        <!-- 引入樣式和js文件 -->
        <link rel="stylesheet" type="text/css" href="css/mobileSelect.css">
        <script src="js/mobileSelect.js" type="text/javascript"></script>
        <script src="js/city.data.js"></script>

    </head>

    <body>

        <div class="demo">
            <div id="trigger4">地區選擇-級聯</div>
        </div>

        <script type="text/javascript">
            var mobileSelect4 = new MobileSelect({
                trigger: '#trigger4',
                title: '地區選擇',
                wheels: [{
                    data: cityData
                }],
                position: [32, 0],  //設定預設選項
                transitionEnd: function(indexArr, data) {
                    console.log(data);
                },
                callback: function(indexArr, data) {
                    console.log(data);
                }
            });

            var kk = 0
            var ss = 0
            for(var k = 0; k < cityData.length; k++) {
                kk++
                var childs = cityData[k].childs;
                for(var m = 0; m < childs.length; m++) {
                    ss++
                }
            }
            console.log("省份:" + kk)
            console.log("城市:" + ss)
        </script>

    </body>

</html>

代碼很簡單,不懂的百度一下。

最後發表一下感言,以前喜歡用框架,項目做多了才發現沒有一款框架是可以完美滿足一切需求的,現在我做移動端項目已經不再用框架了,因為框架需要載入CSS和JS,就算再好的框架也是會占用帶寬和用戶瀏覽器性能的,不如提取出各框架中有用的屬性或者模塊,視項目而選擇屬性載入。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 小伙伴們在用vue開發h5項目特別是移動端的項目,很多都是打包後掛載在原生APP上的,那就少不了與原生交互了,我最近就是在坐這個,踩了一些坑,拿出來給大家分享下。 0.通過url傳輸數據:(一般是在入口頁面傳下app的用戶信息進來供vue h5使用) 1.原生APP提供一個介面對象的引用(例如一個掃 ...
  • —————目錄 HTML5基礎 文本控制標記 圖像標記 超鏈接標記 HTML5基礎 文本控制標記 圖像標記 超鏈接標記 1. HTML5 基礎 文檔基本格式 2.文本控制標記 標題和段落標記 3.圖像標記 4.超鏈接標記 ...
  • quill的video模塊插入的是iframe標簽,我們需要的是video標簽。 1、定義自己的video模塊 2、調用: 踩空分割線 最開始寫了下麵的代碼,倒是變成video標簽了,但是不能播放: ...
  • 我們在工作中可能會很少進行這樣的思考,對於一些常用的原生api它是如何實現的呢,如果讓我們去用js實現一個與原生api功能相同的函數我們該如何設計演算法去實現呢? 為了鞏固自己的編程技術和提高自己的編程技巧,也為了讓自己對js這門語言有更深刻的理解,我將會把平時開發常用到的各種原生api用自己的方式去 ...
  • 用padding-top百分比可以實現寬度固定高度按比例展示,現在的需求是對一個video視頻的盒子div高度是固定的,寬度如何按比例展示? 解決後效果如圖: 紅框標註的即是我在上面高度比例固定的範圍內寬度自適應的效果; css代碼: html: 由於視頻是有寬高比的,這裡給視頻的高度直接是外面盒子 ...
  • 我現在的需求是這樣的,我目前實現了一個div框,顯示文字,超出兩行顯示...,如果單行要保證垂直居中,我如果給容器使用display:flex;align-items:center;則當文字內容過多的時候會不上下文字有截斷; 現在效果如下: 解決方法: display:flex;垂直居中的是裡面元素 ...
  • 最近需要用 nodeJS 寫一個後臺程式,為了能夠獲得 IDE 的更多代碼提示,決定用 typescript 來編寫,隨便也學習下 ts,在這記錄下實現過程。 1、新建文件夾 typescript-koa-postgresql,初始化項目 2、安裝 typescript 3、配置 typescrip ...
  • 一、在所有的項目代碼編寫完成後,react項目直接部署是無法正常訪問的 1、問題一 網頁無法正常的瀏覽器刷新,刷新會報404錯,路由找不到頁面 2、問題二 路由跳轉後,瀏覽器後退按鈕點擊後,頁面不刷新 3、問題三 使用HashRouter的react項目會在路由的時候在路徑上添加/#,所以儘量使用B ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...