찾다
위챗 애플릿미니 프로그램 개발미니 프로그램은 Jiugongge 인터페이스의 탐색을 실현합니다.

이 글은 주로 소규모 프로그램 개발의 실제 사례를 소개합니다. 즉, Jiugongge 인터페이스의 탐색을 구현하는 코드 구현에 관심이 있는 사람들은 이에 대해 배울 수 있습니다.

미니 프로그램은 WeChat에서 개발되었으며 더 편리하게 사용하기 위해 9각형 그리드 인터페이스를 탐색으로 사용하고 싶을 때가 많습니다.

간단히 생각하면 주공 그리드는 3행 3열로 되어 있는데, 행을 하나의 단위로 보고 각 행을 3열로 나누면 괜찮을까요? 연습해 봅시다.

먼저 9개의 그리드 데이터 생성을 고려해 보겠습니다. 각 그리드에는 쉬운 점프를 위한 아이콘, 제목, 경로가 필요합니다. 이제 그 날에는 9개의 페이지가 있으므로 1차원 배열을 정의하면 됩니다. 후속 구성을 더 잘 수행하기 위해 이 배열을 경로.js 파일로 분리한 다음 index.js 페이지에서 참조하고 경로를 인덱스 디렉터리에 넣습니다.

var PageItems = 
 [ 
  { 
   text: '格子1', 
   icon: '../../images/c1.png', 
   route: '../c1/c1', 
  }, 
  { 
   text: '格子2', 
   icon: '../../images/c2.png', 
   route: '../c2/c2', 
  }, 
   { 
   text: '格子3', 
   icon: '../../images/c3.png', 
   route: '../c3/c3', 
  }, 
  { 
   text: '格子4', 
   icon: '../../images/c4.png', 
   route: '../c4/c4', 
  }, 
  { 
   text: '格子5', 
   icon: '../../images/c5', 
   route: '../c5/c5', 
  }, 
  { 
   text: '格子6', 
   icon: '../../images/c6.png', 
   route: '../c6/c6', 
  }, 
  { 
   text: '格子7', 
   icon: '../../images/c7.png', 
   route: '../c7/c7', 
  }, 
  { 
   text: '格子8', 
   icon: '../../images/c8', 
   route: '../c8/c8', 
  }, 
  { 
   text: '格子9', 
   icon: '../../images/c9.png', 
   route: '../c9/c9', 
  } 
 ]; 
module.exports = { 
 PageItems: PageItems 
}

index.js 페이지에서는 Route.js를 참조한 후 PageItems 데이터를 가져오는데, PageItems는 1차원 배열이고 이전에는 행 1개와 열 3개를 그룹으로 사용하려고 생각했기 때문에 이 1차원 배열을 변환해야 합니다. 가장 직접적인 방법은 배열을 생성하는 것입니다. 각 배열 요소에는 3개의 요소만 포함된 1차원 배열이 포함됩니다. 코드는 다음과 같습니다

//index.js 
//获取应用实例 
var app = getApp() 
var routes = require('routes'); 
Page({ 
 data: { 
  userInfo: {}, 
  cellHeight: '120px', 
  pageItems: [] 
 }, 
 //事件处理函数 
 onLoad: function () { 
  var that = this 
  console.log(app); 
  //调用应用实例的方法获取全局数据 
  app.getUserInfo(function (userInfo) { 
   wx.setNavigationBarTitle({ 
    title: '全新测试追踪系统-' + userInfo.nickName, 
    success: function (res) { 
     // success 
    } 
   }) 
   that.setData({ 
    userInfo: userInfo 
   }) 
   var pageItems = []; 
   var row = []; 
   var len = routes.PageItems.length;//重组PageItems 
   len = Math.floor((len + 2) / 3) * 3; 
   for (var i = 0; i < len; i++) { 
    if ((i + 1) % 3 == 0) { 
     row.push(indexs.PageItems[i]); 
     pageItems.push(row); 
     row = []; 
     continue; 
    } 
    else { 
     row.push(indexs.PageItems[i]); 
    } 
   } 
   wx.getSystemInfo({ 
    success: function (res) { 
     var windowWidth = res.windowWidth; 
     that.setData({ 
      cellHeight: (windowWidth / 3) + &#39;px&#39; 
     }) 
    }, 
    complete: function () { 
     that.setData({ 
      pageItems: pageItems 
     }) 
    } 
   }) 
  }) 
 } 
})

index.wxml에 레이아웃을 지정합니다. 각 그리드는 모두 동일하지만 데이터가 다르기 때문에 템플릿을 사용하여 표현하려고 생각했습니다. 이를 위해 먼저 셀 템플릿 표면 cell.wxml을 만듭니다.

<template name="cell"> 
 <navigator url="{{route}}" class="pages-item" style="height:{{cellHeight}}"> 
  <view class="{{text==null||text.length==0?&#39;pages-icon-wrapper-no-bg&#39;:&#39;pages-icon-wrapper&#39;}}" > 
   <image src="{{icon}}" class="pages-icon"></image> 
  </view> 
  <view class="pages-text-wrapper"> 
   <text class="pages-text">{{text}}</text> 
  </view> 
 </navigator> 
</template>

여기서 외부에서 전달된 데이터는 두 개의 중괄호로 묶인 다음 내부에서 간단한 논리적 판단을 내려 변경을 용이하게 하는 것을 알 수 있습니다. 프레젠테이션. 예를 들어 text==null일 때 배경이 비어 있는 그리드를 표시하고 싶습니다. 데이터가 있는 경우 배경이 있는 그리드를 표시하고 싶기 때문에

"{{text==null||text.length==0?&#39;pages-icon-wrapper-no-bg&#39;:&#39;pages-icon-wrapper&#39;}}".

또 다른 점은 이 인터페이스 파일을 template 이므로 템플릿이 참조되는 위치에서 호출을 식별할 수 있도록 템플릿 태그로 래핑하고 이름을 지정해야 합니다. 이제 index.wxml

<!--index.wxml--> 
<import src="cell.wxml" /> 
<view class="pages-container"> 
 <scroll-view scroll-y="true" class="pages-wrapper"> 
  <view wx:for="{{pageItems}}" wx:key="{{text}}"> 
   <view class="pages-row"> 
    <template is="cell" data="{{...item[0],cellHeight}}" /> 
    <template is="cell" data="{{...item[1],cellHeight}}" /> 
    <template is="cell" data="{{...item[2],cellHeight}}" /> 
   </view> 
  </view> 
 </scroll-view> 
</view>

에서 이 템플릿을 참조합니다. 템플릿은 가져오기를 사용하여 참조되며 템플릿은 호출이 이루어지는 곳에서 사용됩니다. 여기서 는 cell.wxml에서 이름을 지정합니다. item[0], item[1], item[2]는 루프에 전달된 데이터이고, cellHeight는 index.js의 데이터에 저장된 데이터입니다. 템플릿에 데이터가 전달되면 프레임워크는 이를 필드, 즉 키-값 쌍의 형태로 확장하기 때문에 cell.wxml 파일을 다시 보면 키가 내부적으로 직접 데이터로 사용되는 것을 알 수 있습니다. . 데이터를 인터페이스에 제시한 후 이를 일치시키기 위한 특정 스타일이 필요합니다. index.wxss 코드는 다음과 같습니다.

/**index.wxss**/ 
.pages-container { 
 height: 100%; 
 display: flex; 
 flex-direction: column; 
 box-sizing: border-box; 
 padding-top: 10rpx; 
 padding-bottom: 10rpx; 
} 
.pages-title-bg { 
 width: 100%; 
} 
.pages-wrapper { 
} 
.pages-row { 
 width: 100%; 
 display: flex; 
 flex-direction: row; 
 justify-content: space-around; 
} 
.pages-item { 
 position: relative; 
 padding: 10rpx; 
 width: 33%; 
 background-color: #fff; 
 border: #ddd solid 1px; 
} 
.pages-icon-wrapper { 
 display: flex; 
 justify-content: space-around; 
 align-items: center; 
 margin: 10rpx; 
 border-radius: 30%; 
 height: 75%; 
 background:#00CD0D; 
} 
.pages-icon-wrapper-no-bg { 
 display: flex; 
 justify-content: space-around; 
 align-items: center; 
 margin: 10rpx; 
 height: 75%; 
} 
.pages-icon { 
 width: 100rpx; 
 height: 100rpx; 
} 
.pages-text-wrapper { 
 text-align: center; 
} 
.pages-text { 
 font-weight: bolder; 
}

효과는 아래와 같습니다

우리 템플릿은 navigator 요소를 사용하여 그리드를 표현하므로 각 그리드를 자연스럽게 탐색할 수 있습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

WeChat 미니 프로그램 페이지의 데이터 데이터 작업 및 함수 호출 분석 정보

카드 뒤집기 게임의 WeChat 미니 프로그램 버전 구현

WeChat 미니 프로그램 문자 기능을 기반으로 도시 선택을 구현합니다

위 내용은 미니 프로그램은 Jiugongge 인터페이스의 탐색을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.