微信小程序实现城市选择和城市切换

参考: https://www.jb51.net/article/141520.htm       http://www.3qphp.com/web/html5/66.html

city.js

var city = {
  "City": [
    {
      "热门城市": [

        {
          "name": "北京市",
          "key": "热门"
        },
        {
          "name": "上海市",
          "key": "热门"
        },
        {
          "name": "广州市",
          "key": "热门"
        },
        {
          "name": "深圳市",
          "key": "热门"
        },
        {
          "name": "成都市",
          "key": "热门"
        },

        {
          "name": "重庆市",
          "key": "热门"
        },
        {
          "name": "天津市",
          "key": "热门"
        },
        {
          "name": "杭州市",
          "key": "热门"
        },
        {
          "name": "南京市",
          "key": "热门"
        },
        {
          "name": "苏州市",
          "key": "热门"
        },
        {
          "name": "武汉市",
          "key": "热门"
        },

        {
          "name": "西安市",
          "key": "热门"
        }

      ],
      "A": [
        {
          "name": "阿坝市",
          "key": "A"
        },
        {
          "name": "阿拉善市",
          "key": "A"
        },
        {
          "name": "阿里市",
          "key": "A"
        },
        {
          "name": "安康市",
          "key": "A"
        },
        {
          "name": "安庆市",
          "key": "A"
        },

        {
          "name": "鞍山市",
          "key": "A"
        }
        ,
        {
          "name": "安顺市",
          "key": "A"
        }
        ,
        {
          "name": "安阳市",
          "key": "A"
        }
        ,
        {
          "name": "澳门市",
          "key": "A"
        }
      ],
      "B": [
        {
          "name": "北京市",
          "key": "B"
        },
        {
          "name": "白银市",
          "key": "B"
        },
        {
          "name": "保定市",
          "key": "B"
        },
        {
          "name": "宝鸡市",
          "key": "B"
        },
        {
          "name": "保山市",
          "key": "B"
        },
        {
          "name": "包头市",
          "key": "B"
        },
        {
          "name": "巴中市",
          "key": "B"
        }
        ,
        {
          "name": "北海市",
          "key": "B"
        }
        ,
        {
          "name": "蚌埠市",
          "key": "B"
        }
        ,
        {
          "name": "本溪市",
          "key": "B"
        }
        ,
        {
          "name": "毕节市",
          "key": "B"
        }
        ,
        {
          "name": "滨州市",
          "key": "B"
        }
        ,
        {
          "name": "百色市",
          "key": "B"
        }
        ,
        {
          "name": "亳州市",
          "key": "B"
        }
      ],
      "C": [
        {
          "name": "重庆市",
          "key": "C"
        },
        {
          "name": "成都市",
          "key": "C"
        },
        {
          "name": "长沙市",
          "key": "C"
        },
        {
          "name": "长春市",
          "key": "C"
        },
        {
          "name": "沧州市",
          "key": "C"
        },
        {
          "name": "常德市",
          "key": "C"
        },
        {
          "name": "昌都市",
          "key": "C"
        }
        ,
        {
          "name": "长治市",
          "key": "C"
        }
        ,
        {
          "name": "常州市",
          "key": "C"
        }
        ,
        {
          "name": "巢湖市",
          "key": "C"
        }
        ,
        {
          "name": "潮州市",
          "key": "C"
        }
        ,
        {
          "name": "承德市",
          "key": "C"
        }
        ,
        {
          "name": "郴州市",
          "key": "C"
        }
        ,
        {
          "name": "赤峰市",
          "key": "C"
        }
        ,
        {
          "name": "池州市",
          "key": "C"
        }
        ,
        {
          "name": "崇左市",
          "key": "C"
        }
        ,
        {
          "name": "楚雄市",
          "key": "C"
        }
        ,
        {
          "name": "滁州市",
          "key": "C"
        }
        ,
        {
          "name": "朝阳市",
          "key": "C"
        }
      ],
      "D": [
        {
          "name": "大连市",
          "key": "D"
        },
        {
          "name": "东莞市",
          "key": "D"
        },
        {
          "name": "大理市",
          "key": "D"
        },
        {
          "name": "丹东市",
          "key": "D"
        },
        {
          "name": "大庆市",
          "key": "D"
        },
        {
          "name": "大同市",
          "key": "D"
        },
        {
          "name": "大兴安岭市",
          "key": "D"
        }
        ,
        {
          "name": "德宏市",
          "key": "D"
        }
        ,
        {
          "name": "德阳市",
          "key": "D"
        }
        ,
        {
          "name": "德州市",
          "key": "D"
        }
        ,
        {
          "name": "定西市",
          "key": "D"
        }
        ,
        {
          "name": "迪庆市",
          "key": "D"
        }
        ,
        {
          "name": "东营市",
          "key": "D"
        }

      ],
      "E": [
        {
          "name": "鄂尔多斯市",
          "key": "E"
        }
        ,
        {
          "name": "恩施市",
          "key": "E"
        }
        ,
        {
          "name": "鄂州市",
          "key": "E"
        }
      ],
      "F": [
        {
          "name": "福州市",
          "key": "F"
        }
        ,
        {
          "name": "防城港市",
          "key": "F"
        }
        ,
        {
          "name": "佛山市",
          "key": "F"
        }
        ,
        {
          "name": "抚顺市",
          "key": "F"
        }
        ,
        {
          "name": "抚州市",
          "key": "F"
        }
        ,
        {
          "name": "阜新市",
          "key": "F"
        }
        ,
        {
          "name": "阜阳市",
          "key": "F"
        }
      ]
      ,
      "G": [
        {
          "name": "广州市",
          "key": "G"
        },
        {
          "name": "赣州市",
          "key": "G"
        },
        {
          "name": "桂林市",
          "key": "G"
        },
        {
          "name": "贵阳市",
          "key": "G"
        },
        {
          "name": "甘南市",
          "key": "G"
        },

        {
          "name": "甘孜市",
          "key": "G"
        },
        {
          "name": "广安市",
          "key": "G"
        }
        ,
        {
          "name": "广元市",
          "key": "G"
        }
        ,
        {
          "name": "果洛市",
          "key": "G"
        }
        ,
        {
          "name": "贵港市",
          "key": "G"
        }

      ],

      "H": [
        {
          "name": "杭州市",
          "key": "H"
        },
        {
          "name": "哈尔滨市",
          "key": "H"
        },
        {
          "name": "合肥市",
          "key": "H"
        },
        {
          "name": "海口市",
          "key": "H"
        },
        {
          "name": "海东市",
          "key": "H"
        },
        {
          "name": "海北市",
          "key": "H"
        },
        {
          "name": "海南市",
          "key": "H"
        }
        ,
        {
          "name": "海西市",
          "key": "H"
        }
        ,
        {
          "name": "邯郸市",
          "key": "H"
        }

        ,
        {
          "name": "汉中市",
          "key": "H"
        }
        ,
        {
          "name": "鹤壁市",
          "key": "H"
        }
        ,
        {
          "name": "河池市",
          "key": "H"
        }
        ,
        {
          "name": "鹤岗市",
          "key": "H"
        }
        ,
        {
          "name": "黑河市",
          "key": "H"
        }
        ,
        {
          "name": "衡水市",
          "key": "H"
        }
        ,
        {
          "name": "衡阳市",
          "key": "H"
        }

        ,
        {
          "name": "河源市",
          "key": "H"
        }
        ,
        {
          "name": "贺州市",
          "key": "H"
        }
        ,
        {
          "name": "红河市",
          "key": "H"
        }
        ,
        {
          "name": "淮安市",
          "key": "H"
        }
        ,
        {
          "name": "淮北市",
          "key": "H"
        }
        ,
        {
          "name": "怀化市",
          "key": "H"
        }
        ,
        {
          "name": "淮南市",
          "key": "H"
        }
        ,

        {
          "name": "黄冈市",
          "key": "H"
        }
        ,
        {
          "name": "黄南市",
          "key": "H"
        }
        ,
        {
          "name": "黄山市",
          "key": "H"
        },
        {
          "name": "黄石市",
          "key": "H"
        },
        {
          "name": "惠州市",
          "key": "H"
        },
        {
          "name": "葫芦岛市",
          "key": "H"
        },
        {
          "name": "呼伦贝尔市",
          "key": "H"
        },
        {
          "name": "湖州市",
          "key": "H"
        }
        ,
        {
          "name": "菏泽市",
          "key": "H"
        }

      ],
      "J": [

        {
          "name": "济南市",
          "key": "J"
        },
        {
          "name": "佳木斯市",
          "key": "J"
        },
        {
          "name": "吉安市",
          "key": "J"
        },
        {
          "name": "江门市",
          "key": "J"
        },
        {
          "name": "焦作市",
          "key": "J"
        },
        {
          "name": "嘉兴市",
          "key": "J"
        },
        {
          "name": "嘉峪关市",
          "key": "J"
        }
        ,
        {
          "name": "揭阳市",
          "key": "J"
        }
        ,

        {
          "name": "吉林市",
          "key": "J"
        }
        ,
        {
          "name": "金昌市",
          "key": "J"
        }
        ,
        {
          "name": "晋城市",
          "key": "J"
        }
        ,
        {
          "name": "景德镇市",
          "key": "J"
        }
        ,
        {
          "name": "荆门市",
          "key": "J"
        }
        ,
        {
          "name": "荆州市",
          "key": "J"
        }
        ,
        {
          "name": "金华市",
          "key": "J"
        }

        ,
        {
          "name": "济宁市",
          "key": "J"
        }
        ,
        {
          "name": "晋中市",
          "key": "J"
        }
        ,
        {
          "name": "锦州市",
          "key": "J"
        }
        ,
        {
          "name": "九江市",
          "key": "J"
        }
        ,
        {
          "name": "酒泉市",
          "key": "J"
        }
      ]
      ,
      "K": [
        {
          "name": "昆明市",
          "key": "K"

        }
        ,
        {

          "name": "开封市",
          "key": "K"
        }
      ]
      ,

      "L": [
        {
          "name": "兰州市",
          "key": "L"
        },
        {
          "name": "拉萨市",
          "key": "L"
        },
        {
          "name": "来宾市",
          "key": "L"
        },
        {
          "name": "莱芜市",
          "key": "L"
        },
        {
          "name": "廊坊市",
          "key": "L"
        },
        {
          "name": "乐山市",
          "key": "L"
        },
        {
          "name": "凉山市",
          "key": "L"
        }
        ,
        {
          "name": "连云港市",
          "key": "L"
        }

        ,
        {
          "name": "聊城市",
          "key": "L"
        }

        ,
        {
          "name": "辽阳市",
          "key": "L"
        }
        ,
        {
          "name": "辽源市",
          "key": "L"
        }
        ,
        {
          "name": "丽江市",
          "key": "L"
        }
        ,
        {
          "name": "临沧市",
          "key": "L"
        }
        ,
        {
          "name": "临汾市",
          "key": "L"
        }
        ,
        {
          "name": "临夏市",
          "key": "L"
        }
        ,

        {
          "name": "临沂市",
          "key": "L"
        }

        ,
        {
          "name": "林芝市",
          "key": "L"
        }
        ,
        {
          "name": "丽水市",
          "key": "L"
        }
        ,
        {
          "name": "六安市",
          "key": "L"
        }
        ,
        {
          "name": "六盘水市",
          "key": "L"
        }
        ,
        {
          "name": "柳州市",
          "key": "L"
        }
        ,
        {
          "name": "陇南市",
          "key": "L"
        }
        ,

        {
          "name": "龙岩市",
          "key": "L"
        }
        ,

        {
          "name": "娄底市",
          "key": "L"
        }
        ,
        {
          "name": "漯河市",
          "key": "L"
        }
        ,
        {
          "name": "洛阳市",
          "key": "L"
        },
        {
          "name": "泸州市",
          "key": "L"
        },
        {
          "name": "吕梁市",
          "key": "L"
        }

      ],

      "M": [
        {
          "name": "马鞍山市",
          "key": "M"
        }
        ,
        {
          "name": "茂名市",
          "key": "M"
        }
        ,
        {
          "name": "眉山市",
          "key": "M"
        }
        ,
        {
          "name": "梅州市",
          "key": "M"
        }
        ,
        {
          "name": "绵阳市",
          "key": "M"
        }
        ,
        {
          "name": "牡丹江市",
          "key": "M"
        }

      ],
      "N": [

        {
          "name": "南京市",
          "key": "N"
        },
        {
          "name": "南昌市",
          "key": "N"
        },
        {
          "name": "南宁市",
          "key": "N"
        },
        {
          "name": "南充市",
          "key": "N"
        },
        {
          "name": "南平市",
          "key": "N"
        },
        {
          "name": "南通市",
          "key": "N"
        },
        {
          "name": "南阳市",
          "key": "N"
        }
        ,
        {
          "name": "那曲市",
          "key": "N"
        }

        ,
        {
          "name": "内江市",
          "key": "N"
        }
        ,
        {
          "name": "宁德市",
          "key": "N"
        }
        ,
        {
          "name": "怒江市",
          "key": "N"
        }


      ],
      "P": [

        {
          "name": "盘锦市",
          "key": "P"
        }
        ,
        {
          "name": "攀枝花市",
          "key": "P"
        }
        ,
        {
          "name": "平顶山市",
          "key": "P"
        }
        ,
        {
          "name": "平凉市",
          "key": "P"
        }
        ,
        {
          "name": "萍乡市",
          "key": "P"
        }
        ,
        {
          "name": "莆田市",
          "key": "P"
        }
        ,
        {
          "name": "濮阳市",
          "key": "P"
        }

      ],
      "Q": [

        {
          "name": "青岛市",
          "key": "Q"
        },
        {
          "name": "黔东南市",
          "key": "Q"
        },
        {
          "name": "黔南市",
          "key": "Q"
        },
        {
          "name": "黔西南市",
          "key": "Q"
        },
        {
          "name": "庆阳市",
          "key": "Q"
        },
        {
          "name": "清远市",
          "key": "Q"
        },
        {
          "name": "秦皇岛市",
          "key": "Q"
        }
        ,
        {
          "name": "钦州市",
          "key": "Q"
        }
        ,
        {
          "name": "齐齐哈尔市",
          "key": "Q"
        }
        ,
        {
          "name": "泉州市",
          "key": "Q"
        }
        ,
        {
          "name": "曲靖市",
          "key": "Q"
        }
        ,
        {
          "name": "衢州市",
          "key": "Q"
        }


      ],

      "R": [
        {
          "name": "日喀则市",
          "key": "R"
        },
        {
          "name": "日照市",
          "key": "R"
        }
      ]
      ,

      "S": [
        {
          "name": "上海市",
          "key": "S"
        },
        {
          "name": "深圳市",
          "key": "S"
        },
        {
          "name": "苏州市",
          "key": "S"
        },
        {
          "name": "沈阳市",
          "key": "S"
        },
        {
          "name": "石家庄市",
          "key": "S"
        },
        {
          "name": "三门峡市",
          "key": "S"
        },
        {
          "name": "三明市",
          "key": "S"
        }
        ,
        {
          "name": "三亚市",
          "key": "S"
        }

        ,
        {
          "name": "商洛市",
          "key": "S"
        }

        ,
        {
          "name": "商丘市",
          "key": "S"
        }
        ,
        {
          "name": "上饶市",
          "key": "S"
        }
        ,
        {
          "name": "山南市",
          "key": "S"
        }
        ,
        {
          "name": "汕头市",
          "key": "S"
        }
        ,
        {
          "name": "汕尾市",
          "key": "S"
        }
        ,
        {
          "name": "韶关市",
          "key": "S"
        }
        ,

        {
          "name": "绍兴市",
          "key": "S"
        }

        ,
        {
          "name": "邵阳市",
          "key": "S"
        }
        ,
        {
          "name": "十堰市",
          "key": "S"
        }
        ,
        {
          "name": "朔州市",
          "key": "S"
        }
        ,
        {
          "name": "四平市",
          "key": "S"
        }
        ,
        {
          "name": "绥化市",
          "key": "S"
        }
        ,
        {
          "name": "遂宁市",
          "key": "S"
        }
        ,

        {
          "name": "随州市",
          "key": "S"
        }
        ,

        {
          "name": "娄底市",
          "key": "S"
        }
        ,
        {
          "name": "宿迁市",
          "key": "S"
        }
        ,
        {
          "name": "宿州市",
          "key": "S"
        }

      ],
      "T": [

        {
          "name": "天津市",
          "key": "T"
        },
        {
          "name": "太原市",
          "key": "T"
        },
        {
          "name": "泰安市",
          "key": "T"
        },
        {
          "name": "泰州市",
          "key": "T"
        },
        {
          "name": "唐山市",
          "key": "T"
        },
        {
          "name": "天水市",
          "key": "T"
        },
        {
          "name": "铁岭市",
          "key": "T"
        }
        ,
        {
          "name": "铜川市",
          "key": "T"
        }
        ,

        {
          "name": "通化市",
          "key": "T"
        }
        ,
        {
          "name": "通辽市",
          "key": "T"
        }
        ,
        {
          "name": "铜陵市",
          "key": "T"
        }
        ,
        {
          "name": "铜仁市",
          "key": "T"
        }
        ,
        {
          "name": "台湾市",
          "key": "T"
        }


      ]
      ,
      "W": [

        {
          "name": "武汉市",
          "key": "W"
        },
        {
          "name": "乌鲁木齐市",
          "key": "W"
        },
        {
          "name": "无锡市",
          "key": "W"
        },
        {
          "name": "威海市",
          "key": "W"
        },
        {
          "name": "潍坊市",
          "key": "W"
        },
        {
          "name": "文山市",
          "key": "W"
        },
        {
          "name": "温州市",
          "key": "W"
        }
        ,
        {
          "name": "乌海市",
          "key": "W"
        }
        ,

        {
          "name": "芜湖市",
          "key": "W"
        }
        ,
        {
          "name": "乌兰察布市",
          "key": "W"
        }
        ,
        {
          "name": "武威市",
          "key": "W"
        }
        ,
        {
          "name": "梧州市",
          "key": "W"
        }

      ],
      "X": [

        {
          "name": "厦门市",
          "key": "X"
        },
        {
          "name": "西安市",
          "key": "X"
        },
        {
          "name": "西宁市",
          "key": "X"
        },
        {
          "name": "襄樊市",
          "key": "X"
        },
        {
          "name": "湘潭市",
          "key": "X"
        },
        {
          "name": "湘西市",
          "key": "X"
        },
        {
          "name": "咸宁市",
          "key": "X"
        }
        ,
        {
          "name": "咸阳市",
          "key": "X"
        }
        ,

        {
          "name": "孝感市",
          "key": "X"
        }
        ,
        {
          "name": "邢台市",
          "key": "X"
        }
        ,
        {
          "name": "新乡市",
          "key": "X"
        }
        ,
        {
          "name": "信阳市",
          "key": "X"
        }
        ,
        {
          "name": "新余市",
          "key": "X"
        }
        ,
        {
          "name": "忻州市",
          "key": "X"
        }
        ,
        {
          "name": "西双版纳市",
          "key": "X"
        }

        ,
        {
          "name": "宣城市",
          "key": "X"
        }
        ,

        {
          "name": "许昌市",
          "key": "X"
        }
        ,
        {
          "name": "徐州市",
          "key": "X"
        }
        ,
        {
          "name": "香港市",
          "key": "X"
        }
        ,
        {
          "name": "锡林郭勒市",
          "key": "X"
        }
        ,
        {
          "name": "兴安市",
          "key": "X"
        }
      ]
      ,
      "Y": [

        {
          "name": "银川市",
          "key": "Y"
        },
        {
          "name": "雅安市",
          "key": "Y"
        },
        {
          "name": "延安市",
          "key": "Y"
        },
        {
          "name": "延边市",
          "key": "Y"
        },
        {
          "name": "盐城市",
          "key": "Y"
        },
        {
          "name": "阳江市",
          "key": "Y"
        },

        {
          "name": "阳泉市",
          "key": "Y"
        }
        ,
        {
          "name": "扬州市",
          "key": "Y"
        }
        ,

        {
          "name": "烟台市",
          "key": "Y"
        }
        ,
        {
          "name": "宜宾市",
          "key": "Y"
        }
        ,
        {
          "name": "宜昌市",
          "key": "Y"
        }
        ,
        {
          "name": "宜春市",
          "key": "Y"
        }
        ,
        {
          "name": "营口市",
          "key": "Y"
        }
        ,

        {
          "name": "益阳市",
          "key": "Y"
        }
        ,
        {
          "name": "永州市",
          "key": "Y"
        }

        ,
        {
          "name": "岳阳市",
          "key": "Y"
        }
        ,

        {
          "name": "榆林市",
          "key": "Y"
        }
        ,
        {
          "name": "运城市",
          "key": "Y"
        }
        ,
        {
          "name": "云浮市",
          "key": "Y"
        }
        ,
        {
          "name": "玉树市",
          "key": "Y"
        }
        ,
        {
          "name": "玉溪市",
          "key": "Y"
        }
        ,
        {
          "name": "玉林市",
          "key": "Y"
        }

      ],

      "Z": [
        {
          "name": "杂多县",
          "key": "Z"
        },
        {
          "name": "赞皇县",
          "key": "Z"
        },
        {
          "name": "枣强县",
          "key": "Z"
        },
        {
          "name": "枣阳市市",
          "key": "Z"
        },
        {
          "name": "枣庄市",
          "key": "Z"
        },
        {
          "name": "泽库县",
          "key": "Z"
        },
        {
          "name": "增城市市",
          "key": "Z"
        }
        ,

        {
          "name": "曾都区市",
          "key": "Z"
        }
        ,
        {
          "name": "泽普县",
          "key": "Z"
        }

        ,
        {
          "name": "泽州县",
          "key": "Z"
        }
        ,
        {
          "name": "札达县",
          "key": "Z"
        }
        ,
        {
          "name": "扎赉特旗市",
          "key": "Z"
        }
        ,
        {
          "name": "扎兰屯市市",
          "key": "Z"
        }
        ,
        {
          "name": "扎鲁特旗市",
          "key": "Z"
        }
        ,

        {
          "name": "扎囊县",
          "key": "Z"
        }
        ,
        {
          "name": "张北县",
          "key": "Z"
        }

        ,
        {
          "name": "张店区市",
          "key": "Z"
        }
        ,
        {
          "name": "章贡区市",
          "key": "Z"
        }
        ,
        {
          "name": "张家港市",
          "key": "Z"
        }
        ,
        {
          "name": "张家界市",
          "key": "Z"
        }
        ,
        {
          "name": "张家口市",
          "key": "Z"
        }
        ,
        {
          "name": "漳平市市",
          "key": "Z"
        }
        ,

        {
          "name": "漳浦县",
          "key": "Z"
        }
        ,

        {
          "name": "章丘市市",
          "key": "Z"
        }
        ,
        {
          "name": "樟树市市",
          "key": "Z"
        }
        ,
        {
          "name": "张湾区市",
          "key": "Z"
        },
        {
          "name": "彰武县",
          "key": "Z"
        },
        {
          "name": "漳县",
          "key": "Z"
        },
        {
          "name": "张掖市",
          "key": "Z"
        },
        {
          "name": "漳州市",
          "key": "Z"
        },
        {
          "name": "长子县",
          "key": "Z"
        }
        ,

        {
          "name": "湛河区市",
          "key": "Z"
        }
        ,
        {
          "name": "湛江市",
          "key": "Z"
        }
        ,

        {
          "name": "站前区市",
          "key": "Z"
        }
        ,
        {
          "name": "沾益县",
          "key": "Z"
        }
        ,
        {
          "name": "诏安县",
          "key": "Z"
        },
        {
          "name": "召陵区市",
          "key": "Z"
        },
        {
          "name": "昭平县",
          "key": "Z"
        },
        {
          "name": "肇庆市",
          "key": "Z"
        },
        {
          "name": "昭通市",
          "key": "Z"
        },
        {
          "name": "赵县",
          "key": "Z"
        }

      ]
    }
  ]
}
module.exports = city;

  selectcity.js

//先引用城市数据文件
var city = require('city.js')
var lineHeight = 0;
var endWords = "";
var isNum;
Page({
  data: {
    "hidden": true,
    cityName: "", //获取选中的城市名

  },
  onLoad: function (options) {
    // 生命周期函数--监听页面加载
  },
  onReady: function () {
    // 生命周期函数--监听页面初次渲染完成
    var cityChild = city.City[0];
    console.log(cityChild)
    var that = this;
    wx.getSystemInfo({
      success: function (res) {
        lineHeight = (res.windowHeight - 100) / 22;
        console.log(res.windowHeight - 100)
        that.setData({
          city: cityChild,
          winHeight: res.windowHeight - 40,
          lineHeight: lineHeight
        })
      }
    })
  },
  onShow: function () {
    // 生命周期函数--监听页面显示

  },
  onHide: function () {
    // 生命周期函数--监听页面隐藏

  },
  onUnload: function () {
    // 生命周期函数--监听页面卸载

  },
  //触发全部开始选择
  chStart: function () {
    this.setData({
      trans: ".3",
      hidden: false
    })
  },
  //触发结束选择
  chEnd: function () {
    this.setData({
      trans: "0",
      hidden: true,
      scrollTopId: this.endWords
    })
  },
  //获取文字信息
  getWords: function (e) {
    var id = e.target.id;
    this.endWords = id;
    isNum = id;
    this.setData({
      showwords: this.endWords
    })
  },
  //设置文字信息
  setWords: function (e) {
    var id = e.target.id;
    this.setData({
      scrollTopId: id
    })
  },

  // 滑动选择城市
  chMove: function (e) {
    var y = e.touches[0].clientY;
    var offsettop = e.currentTarget.offsetTop;
    var height = 0;
    var that = this;;
    var cityarr = ["A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "W", "X", "Y", "Z"]
    // 获取y轴最大值
    wx.getSystemInfo({
      success: function (res) {
        height = res.windowHeight - 10;
      }
    });

    //判断选择区域,只有在选择区才会生效
    if (y > offsettop && y < height) {
      // console.log((y-offsettop)/lineHeight)
      var num = parseInt((y - offsettop) / lineHeight);
      endWords = cityarr[num];
      // 这里 把endWords 绑定到this 上,是为了手指离开事件获取值
      that.endWords = endWords;
    };


    //去除重复,为了防止每次移动都赋值 ,这里限制值有变化后才会有赋值操作,
    //DOTO 这里暂时还有问题,还是比较卡,待优化
    if (isNum != num) {
      // console.log(isNum);
      isNum = num;
      that.setData({
        showwords: that.endWords
      })
    }
  },
  //选择城市,并让选中的值显示在文本框里
  bindCity: function (e) {
    var cityName = e.currentTarget.dataset.city;
    var pages = getCurrentPages();
    var prevPage = pages[pages.length - 2]; //上一个页面

    //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
    prevPage.setData({
      cityName: cityName
    })
    wx.navigateBack()
    // wx.navigateBack({
    //   url: '/pages/home/search/index'
    // })
  }
})

  selectcity.wxml

<!--index.wxml-->
<!-- <view class="title">
  <input class="title_list" value="{{cityName}}" placeholder="城市名称" />
  <button>确认</button>
</view> -->
<scroll-view scroll-y="true" style="height: {{winHeight}}px;" scroll-into-view="{{scrollTopId}}" class="city_list">
	<block wx:for="{{city}}" wx:for-index="idx" wx:for-item="cityName">
		<text id="{{idx}}" class="list_tit">{{idx}}</text>
		<block wx:for="{{cityName}}">
			<view class="list_con" data-city="{{item.name}}" bindtap="bindCity">{{item.name}}</view>
		</block>
	</block>
</scroll-view>
<!--城市选择列表-->
<view class="scroll_list" bindtouchstart="chStart" bindtouchend="chEnd" catchtouchmove="chMove" style="background: rgba(0,0,0,{{trans}});">
	<block wx:for="{{city}}" wx:for-index="idx" wx:for-item="cityName">
		<block wx:if="{{idx != '热门城市'}}">
			<view id="{{idx}}" class="scroll_list_chi" style="line-height:{{lineHeight}}px ; height:{{lineHeight}}px ;font-size:{{lineHeight/1.7}}px;" bindtouchstart="getWords" bindtouchend="setWords">{{idx}}</view>
		</block>
	</block>
</view>

<!--选择显示-->
<view hidden="{{hidden}}" class="showwords">
	{{showwords}}
</view>

  selectcity.wxss

/* pages/home/selectcity/selectcity.wxss */
/**index.wxss**/

.title {
    position: relative;
    padding: 10px 0;
}
.title_list {
    display: inline-block;
    padding: 0 15px;
    height: 20px;
    line-height: 20px;
    font-size: 16px;
}
.title button {
    width: 50px;
    height: 30px;
    font-size: 16px;
    padding: 0;
    line-height: 30px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom:0;
    right: 10px;
    background: none;
}
.title button::after {
    border: none;
}
.title_list:nth-child(1) {
    border-right:1px #ccc solid;
}
/*城市列表*/
.city_list {
    position: relative;
}

/*城市选择头部*/
.list_tit {
    display: block;
    line-height: 40px;
    height: 40px;
    padding-left: 15px;
    font-size: 16ppx;
    background: #f5f5f5;
    color: #666;
}
.list_con {
    height: 40px;
    /*border-top: 1px #f5f5f5 solid ;*/
    line-height: 40px;
    font-size: 16px;
    padding-left: 15px;
}
.list_con::before {
    content: " ";
    height: 1px;
    border-top: 1px #f5f5f5 solid;
    position: absolute;
    width: 100%;
}
.list_con::before:nth-child(1) {
    border: none;
}
/*城市选择 右边*/
.scroll_list {
    background: rgba(0,0,0,0);
    position: absolute;
    height: calc(100% - 100px);
    width: 25px;
    top: 90px;
    right: 10px;
}
.scroll_list_chi {
    /*border: 1px blue solid;*/
    text-align: center;
    font-size: 12px;
}
/*显示框*/

.showwords {
    width: 80px;
    height: 80px;
    background: rgba(0,0,0,.3);
    border-radius:50%;
    line-height: 80px;
    text-align: center;
    font-size:10vw;
    margin: auto;
    position: absolute;
    top: 0;left: 0;bottom: 0;right: 0;
    z-index: 999;   
}

  

posted @ 2020-08-27 10:53  小魏code  阅读(7171)  评论(0编辑  收藏  举报