WeChatアプレットのスキン変更機能の実装方法

小云云
リリース: 2018-03-16 09:07:35
オリジナル
2738 人が閲覧しました

PC またはモバイル端末でスキン変更機能を実装するのは比較的簡単です。変更する必要があるのは、通常の CSS です。次に、それを js を通じて読み取り、どのセットを決定するかです。の css が現在ロードされているはずです。この記事では主にWeChatアプレットのスキン変更機能を詳しく紹介しますので、興味のある方はぜひ参考にしてください。

WeChat アプレットには wxss を操作するための API がないため、実装方法は少し異なり、おおよそ次のとおりです:

1. リスキンが必要な Wxss、通常の wxss。

2. 各ページにスキン変更用の wxss を導入します (スキン変更にはすべてのページを変更する必要があるため)。

3. app.jsのglobalDataにデフォルトのスキンタイプを設定します。

4. 各ページがオンロードされるときに、ストレージ内のデータを読み取り、現在のスキン タイプの値を設定します。

例:

ステップ 1: 構造


<view class=&#39;page&#39; id=&#39;{{SkinStyle}}&#39;>
 <view class=&#39;header&#39;>
  <view class=&#39;h-skin iconfont {{SkinStyle!=="normal"?"icon-moon":"icon-sun"}}&#39; bindtap=&#39;bgBtn&#39;></view>  
 </view>
</view>
ログイン後にコピー

注: WeChat アプレットのルート ノード ページは直接操作できないため、全画面の背景色を変更するには、高さと幅を模倣することしかできません。 100%。上記はp(ビュー)withクラスページです。

id='{{SkinStyle}}'、id の設定は、スキンの wxss スタイルのウェイトを、現在のスキン タイプに基づいた通常の wxss スタイルのウェイトよりも大きくすることであるため、追加する必要がない場合があります。 !重要。

ルートノードページはwxssでwidth:100%;height:100%を設定する必要があります。次に、クラスをページとして p (ビュー) の幅と高さを 100% に設定します。これは、動作可能なルート ノード ページを持つことと同じです。

{{SkinStyle!=="normal"?"icon-moon":"icon-sun"}} この文は、現在の肌のタイプを判断するもので、正常であれば icon-sun、それ以外の場合は icon です。 -月。

第 2 ステップ: スタイル wxss

スキン wxss:


#dark {
 background: #333;
}
#dark .header .h-skin{
 color: white;
}
ログイン後にコピー

通常の wxss:


.page .header .h-skin {
 color: #060505;
 padding: 0 32rpx;
 font-size: 40rpx;
}
ログイン後にコピー

パブリック wxss:


page {
 height: 100%;
 width: 100%;
}
.page {
 width: 100%;
 height: 100%;
}
ログイン後にコピー

注: これらは 3 つのファイルです。スキンはtheme.wxss、通常のものはindex.wxss、公開されているものはcom.wxssです

スキンの変更によりすべてのページが変更されるため、スキンのwxssファイルをロードすることをお勧めします @import "../theme-bg/theme "; com.wxss ファイルに。次に、各ページの wxss がこのパブリック com.wxss ファイルを @import します。

ステップ 3: js

まず、app.js ファイルで、ページに globalData を設定します。skin: "normal"、つまり、デフォルトはノーマルスキンです

次に、スイッチのページでスキン ボタン、切り替えボタンのクリック イベント bgBtn を追加します:


var app=getApp();
Page({
 data:{
   SkinStyle:"normal"  //这里其实可以不要
 }, 
 bgBtn:function(){
  if (this.data.SkinStyle==="normal"){
   app.globalData.skin = "dark"; //设置app()中皮肤的类型
   this.setData({
    SkinStyle: app.globalData.skin //设置SkinStyle的值
   })
   wx.setStorage({   //设置storage
       key: &#39;skins&#39;,
       data: app.globalData.skin,
     })
  }else{
   app.globalData.skin="normal";
   this.setData({
    SkinStyle: "normal"
   })
   wx.setStorage({
       key: &#39;skins&#39;,
       data: app.globalData.skin,
     })   
  }  
 }
})
ログイン後にコピー

最後に: スキンを切り替えるページを含む各ページの Page の onLoad イベントで、ストレージを読み取り、SkinStyle の値を設定します。


onLoad: function (options) { 
 var that=this;
 wx.getStorage({
 key: &#39;skins&#39;,
 success: function(res) {
  that.setData({
   SkinStyle: res.data
  })
 },
 })
}
ログイン後にコピー

このように 前回設定したスキンが起動するたびに自動で設定されます。

最終レンダリング:

関連推奨事項:

vueスキン変更関数のサンプルチュートリアル

サンプルの詳細な説明 jQueryはCookieに基づいてスキン変更関数を実装します

JQuery Webサイトのスキン変更関数実装 code_jquery

以上がWeChatアプレットのスキン変更機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート