目次
前に書いています
1. 核心解析
1.1 基本HTML结构
1.2 初始化DOM
1.3 初始化事件
2. 总结
1.1基本的な HTML 構造
1.2 DOM の初期化
1.3 初期化イベント
ホームページ ウェブフロントエンド jsチュートリアル モバイルエフェクトに Picke を実装する方法

モバイルエフェクトに Picke を実装する方法

Oct 12, 2017 am 09:41 AM
成し遂げる 方法

前に書いています

モバイルエフェクトに関する以前の研究に続き、今回はモバイルエフェクトに Picke を実装する方法セレクターの実装原理を見てみましょうモバイルエフェクトに Picke を実装する方法选择器的实现原理

移动端效果之Swiper

代码看这里:github

モバイルエフェクトに Picke を実装する方法

1. 核心解析

1.1 基本HTML结构


<!--     说明:    
1. 类 モバイルエフェクトに Picke を実装する方法-3d 是为了提供3d视角,如果不需要可以去掉    
2. 类 モバイルエフェクトに Picke を実装する方法-slot-absolute 在3d视角中需要加上,因为下面相对定位的 モバイルエフェクトに Picke を実装する方法-items 是要相对父容器进行    transform的,如果不加,就会造成位移不正确    3. DOM中所有的style样式都是在初始化的时候加上的--><p class="モバイルエフェクトに Picke を実装する方法 モバイルエフェクトに Picke を実装する方法-3d">
    <p class="モバイルエフェクトに Picke を実装する方法-items">
        <p class="モバイルエフェクトに Picke を実装する方法-slot モバイルエフェクトに Picke を実装する方法-slot-absolute" style="flex:1;">
            <p class="モバイルエフェクトに Picke を実装する方法-slot-wrapper" id="wrapper" style="height: 108px;">
                <p class="モバイルエフェクトに Picke を実装する方法-item モバイルエフェクトに Picke を実装する方法-selected" style="height:36px;line-height: 36px">1981</p>
                <!-- ... -->
                <p class="モバイルエフェクトに Picke を実装する方法-item" style="height:36px;line-height: 36px">1999</p>
            </p>
        </p>
    </p>
    <p class="モバイルエフェクトに Picke を実装する方法-center-highlight" style="height:36px;margin-top:-18px;"></p></p>
ログイン後にコピー

1.2 初始化DOM

由于饿了么源码中的モバイルエフェクトに Picke を実装する方法是采用v-for指令生成的DOM,因此我这里只是简单的用javascript来模拟一下DOM的生成。


var el = document.querySelector(&#39;#wrapper&#39;);
var animationFrameId = null;
var currentValue;
var itemHeight = 36;
var visibleItemCount = 3;
var valueIndex = 0;
var rotateEffect = true;
var datas = [&#39;1981&#39;, &#39;1982&#39;, &#39;1983&#39;, &#39;...&#39;, &#39;1999&#39;];// 如果支持3d视角,则给<p class="モバイルエフェクトに Picke を実装する方法"></p>加上类"モバイルエフェクトに Picke を実装する方法-3d"// <p class="モバイルエフェクトに Picke を実装する方法-slot" style="flex:1;">加上类"モバイルエフェクトに Picke を実装する方法-slot-absolute"if (rotateEffect) {
    var モバイルエフェクトに Picke を実装する方法 = document.querySelector(&#39;.モバイルエフェクトに Picke を実装する方法&#39;);
    var モバイルエフェクトに Picke を実装する方法Slot = document.querySelector(&#39;.モバイルエフェクトに Picke を実装する方法-slot&#39;);
    モバイルエフェクトに Picke を実装する方法.classList.add(&#39;モバイルエフェクトに Picke を実装する方法-3d&#39;);
    モバイルエフェクトに Picke を実装する方法Slot.classList.add(&#39;モバイルエフェクトに Picke を実装する方法-slot-absolute&#39;);}// 限定容器高度el.style.height = `${visibleItemCount * itemHeight}px`;// 生成DOMvar html = &#39;&#39;;datas.forEach(function(data, index) {
    html += `<p class="モバイルエフェクトに Picke を実装する方法-item" style="height:36px;line-height:36px;">${data}</p>`;});el.innerHTML = html;// 激活当前itemvar モバイルエフェクトに Picke を実装する方法Items = document.querySelectorAll(&#39;.モバイルエフェクトに Picke を実装する方法-item&#39;);モバイルエフェクトに Picke を実装する方法Items[valueIndex].classList.add(&#39;モバイルエフェクトに Picke を実装する方法-selected&#39;);
ログイン後にコピー

1.3 初始化事件

总体上来说,モバイルエフェクトに Picke を実装する方法的事件也包括滑动开始、滑动中、滑动结束。因为毕竟是移动端,滑动不可避免。这次,源码中的对滑动事件进行了封装,兼容了PC端以及排除了拖动和选择造成的影响,具体看一下分析。`


/**  * draggable.js  * 只是起到一定的兼容性 * 实质和直接调用 el.addEventListener(&#39;touchstart&#39;, startFn); 并没有多大差别 */// 滑动开始// touchstart 和 mousedown 可见对PC端的兼容// onselectstart/ondragstart 直接return 可见排除了拖动和选择element.addEventListener(supportTouch ? &#39;touchstart&#39; : &#39;mousedown&#39;, function(event) {
    if (isDragging) return;
    document.onselectstart = function() { return false; };
    document.ondragstart = function() { return false; };

    // ...});// 滑动结束var endFn = function(event) {
    // 注销事件
    if (!supportTouch) {
        document.removeEventListener(&#39;mousemove&#39;, moveFn);
        document.removeEventListener(&#39;mouseup&#39;, endFn);
    }
    document.onselectstart = null;
    document.ondragstart = null;

    isDragging = false;

    if (options.end) {
        options.end(supportTouch ? event.changedTouches[0] || event.touches[0] : event);
    }}
ログイン後にコピー

要是DOM跟随自己在手机屏幕上的滑动而滑动,方法大同小异,无非就是在开始滑动记录开始位置,滑动中实时计算位移,滑动结束之后将DOM滑动应该滑动的位置。这点可以参看前面一篇文章移动端效果之Swiper,这篇文章中有着相同的方法。这里重点讲一下其中的区别


// 滑动开始的执行事件方法start: function(event) {
    dragState = {
        range: getDragRange(),
        // ...
        startTranslateTop: translateUtil.getElementTranslate(el).top
    };}
ログイン後にコピー

这其中有两个方法,第一个getDragRange和第二个getElementTranslate(el).

  • 第一个函数的作用是获取モバイルエフェクトに Picke を実装する方法能够滑动的最小和最大的位移,这将会在滑动结束事件中用到。关于如何计算,这里简单提一下,向下滑动,最大不能超过最中间的item的最上方,这也就是为什么itemHeight * Math.floor(visibleItemCount / 2),而向上滑动,最大不能超过中间item的最下方,-itemHeight * (valuesLength - Math.ceil(visibleItemCount / 2)),细细想一下就好了。

  • 第二个函数的作用是获取当前モバイルエフェクトに Picke を実装する方法transform值,作为下一次滑动计算的依据。其实感觉这样挺费事,因为在touchend中最后肯定会计算translate值,我们只需要每次保存最后滑动的移动值就好了,而不要每次都要在DOM中取。


/** * translateUtil * 对浏览器对前缀支持的一些判断 * 检测浏览器对3d属性的支持情况 * 获取当前的translate值/清空モバイルエフェクトに Picke を実装する方法的translate值/移动モバイルエフェクトに Picke を実装する方法 * 对于浏览器的检测方面,这也算是一个比较好的工具类 */var docStyle = document.documentElement.style;var engine;var translate3d = false;// 浏览器判断if (window.opera && Object.prototype.toString.call(opera) === &#39;[object Opera]&#39;) {
    engine = &#39;presto&#39;;} else if (&#39;MozAppearance&#39; in docStyle) {
    engine = &#39;gecko&#39;;} else if (&#39;WebkitAppearance&#39; in docStyle) {
    engine = &#39;webkit&#39;;} else if (typeof navigator.cpuClass === &#39;string&#39;) {
    engine = &#39;trident&#39;;}// css前缀var cssPrefix = {
    trident: &#39;-ms-&#39;,        // IE
    gecko: &#39;-moz-&#39;,         // FireFox
    webkit: &#39;-webkit-&#39;,     // Chrome/Safari/etc...
    presto: &#39;-o-&#39;           // Opera}[engine];// style前缀var vendorPrefix = {
    trident: &#39;ms&#39;,
    gecko: &#39;Moz&#39;,
    webkit: &#39;Webkit&#39;,
    presto: &#39;O&#39;}[engine];var helpElem = document.createElement(&#39;p&#39;);var perspectiveProperty = vendorPrefix + &#39;Perspective&#39;;var transformProperty = vendorPrefix + &#39;Transform&#39;;var transformStyleName = cssPrefix + &#39;transform&#39;;var transitionProperty = vendorPrefix + &#39;Transition&#39;;var transitionStyleName = cssPrefix + &#39;transition&#39;;var transitionEndProperty = vendorPrefix.toLowerCase() + &#39;TransitionEnd&#39;;if (helpElem.style[perspectiveProperty] !== undefined) {
    translate3d = true;}// 讲一下这个正则// \s*(-?\d+(\.\d+?)?)px 这是一个单元,匹配这样的 -23.15px, 剩下的应该就好理解了var regexp = /translate\(\s*(-?\d+(\.\d+?)?)px,\s*(-?\d+(\.\d+?)?)px\)\s*translateZ\(0px\)/ig;
ログイン後にコピー

接下来看看滑动中


drag: function(event) {
    // 加上 dragging 类是为了清除过渡效果,在swiper中也有同样的应用
    el.classList.add(&#39;dragging&#39;);

    dragState.left = event.pageX;
    dragState.top = event.pageY;

    var deltaY = dragState.top - dragState.startTop;
  
    // 计算当前的滑动位移
    var translate = dragState.startTranslateTop + deltaY;

    // 滑动元素
    translateUtil.translateElement(el, null, translate);
    velocityTranslate = translate - prevTranslate || translate;

    prevTranslate = translate;

    if (rotateEffect) {
        updateRotate(prevTranslate, モバイルエフェクトに Picke を実装する方法Items);
    }}
ログイン後にコピー

看到以上的代码中有一个velocityTranslate,这个值有神马作用,最开始我也不清楚,后面发现在滑动结束之后用到了,才明白了它代表了一个速率的位移值。什么是速率?就好比你快速滑动的时候,总希望它能够惯性滑动一下,这个值乘以一个惯性值就可以得出一个惯性位移。看end中的代码。


end: function() {
    // 添加过渡
    el.classList.remove(&#39;dragging&#39;);
    // 惯性值
    var momentumRatio = 7;
    var currentTranslate = translateUtil.getElementTranslate(el).top;
    var duration = new Date() - dragState.start;

    var momentumTranslate;
    if (duration < 300) {
        momentumTranslate = currentTranslate + velocityTranslate * momentumRatio;
    }

    // 加上惯性速率之后的位移值
    console.log(&#39;momentumTranslate&#39;, momentumTranslate);

    dragRange = dragState.range;

    setTimeout(function() {
        var translate;
        if (momentumTranslate) {
            translate = Math.round(momentumTranslate / itemHeight) * itemHeight;
        } else {
            translate = Math.round(currentTranslate / itemHeight) * itemHeight;
        }

        // 取得最终的位移值,
        // 必须为itemHeight的倍数
        // 在范围的最大值和最小值中取
        translate = Math.max(Math.min(translate, dragRange[1]), dragRange[0]);
        translateUtil.translateElement(el, null, translate);

        // 计算得出当前位移下应该对应的实际值
        currentValue = translate2Value(translate);

        // 3d效果
        if (rotateEffect) {
            planUpdateRotate();
        }
    }, 10);

    dragState = {};}
ログイン後にコピー

这就是整个モバイルエフェクトに Picke を実装する方法的实现流程,撇开3d效果就可以使用了。下面看一下如何实现的3D效果。在doOnValuesChange中有一个最开始的初始化。


[].forEach.call(items, function(item, index) {
    translateUtil.translateElement(item, null, itemHeight * index);});
ログイン後にコピー

给每一个item设置了根据索引来的位移值,此时的每一个item的定位都必须是absolute的,这样位移下来才是紧挨着的,不然可能中间都会有一个itemHeight的空格。

3D效果中最关键的一点就是如何进行翻转角度的计算。在源码中定义了一个常量对象:


var VISIBEL_ITEMS_ANGLE_MAP = {
    3: -45,
    5: -20,
    7: -15};
ログイン後にコピー

可以看到,当只有3个可见元素的时候,高亮部分相对于X轴平行,而上一个item就必须绕X轴顺时针旋转45度,反之下一个itemX轴逆时针旋转45度。另外在其中有一段代码特别绕,根据我的理解是这样的:


// 当前item相对于顶部原本应该有的位移值var itemOffsetTop = index * itemHeight; // 滑动过程中,相对于最开始的位置滑动的位移值var translateOffset = dragRange[1] - currentTranslate;// 当应该有的位移值和滑动的位移值相等的时候,也就说明了当前的`item`被选中// 也就是说此时当前的角度为0var itemOffset = itemOffsetTop - translateOffset;var percentage = itemOffset / itemHeight;var angle = angleUnit * percentage;if (angle > 180) angle = 180;if (angle < -180) angle = -180;rotateElement(item, angle);
ログイン後にコピー

如果觉得太绕,其实也没有必要按照他的这种做法来,我们只要想办法确定每一个item相对于当前选中的item是处于上一个还是下一个,就可以根据此来计算角度。

2. 总结

关于饿了么中的モバイルエフェクトに Picke を実装する方法组件就看了这么多,整体来说跟swiper

モバイルエフェクト用のスワイパー🎜🎜コードはここにあります: github🎜 🎜🎜🎜1. コア分析🎜

1.1基本的な HTML 構造


🎜rrreee

1.2 DOM の初期化

🎜Ele.me ソース コードの モバイルエフェクトに Picke を実装する方法 では、 v-for 命令は DOM を生成するため、ここでは単純に javascript を使用して DOM の生成をシミュレートします。 🎜


🎜rrreee

1.3 初期化イベント

🎜一般的に、モバイルエフェクトに Picke を実装する方法 のイベントには、スライディング スタート、スライディング、スライディング エンドも含まれます。 。所詮モバイル端末なので滑りは避けられません。今回は、スライド イベントがソース コードにカプセル化されており、PC と互換性があり、ドラッグや選択の影響が排除されています。分析を詳しく見てみましょう。 `🎜


🎜rrreee🎜 携帯電話の画面上でのスライドに続いて DOM がスライドする場合も、方法は同様で、開始位置を記録するだけです。スライド開始時、スライド リアルタイムに変位を計算し、スライド終了後、DOM をスライドすべき位置までスライドさせます。この点については、以前の記事「モバイルエフェクト用のスワイパー」を参照してください。この記事も同様の方法です。ここでは相違点に焦点を当てます🎜


🎜rrreee🎜最初の getDragRange と 2 番目の getElementTranslate( el) の 2 つのメソッドがあります。 >.🎜

  • 🎜 最初の関数の機能は、モバイルエフェクトに Picke を実装する方法 がスライドできる最小および最大の変位を取得することです。これが使用されます。スライディング終了イベント。計算方法については、下にスライドすると、最大値が中央の item の上部を超えることができないため、itemHeight * Math.floor(visibleItemCount / 2) となります。 code>、上にスライドする間、最大値は中央の item, -itemHeight * (valuesLength - Math.ceil(visibleItemCount / 2))の下端を超えることはできません。 >、よく考えてからで十分です。 🎜
  • 🎜 2 番目の関数は、次のスライディング計算の基礎として現在の モバイルエフェクトに Picke を実装する方法transform 値を取得することです。 translate の値は必ず touchend で計算されるため、実際には、毎回最後のスライド移動の値を保存するだけで済むため、これは非常に面倒だと感じます。毎回すべて DOM から取得する必要があります。 🎜


🎜rrreee🎜 次に、スライドを見てみましょう 🎜


🎜rrreee🎜上記のコードには velocityTranslate という値があり、最初は知りませんでしたが、後でスライドが完了した後に使用されていることがわかりました。速度の変位値を表すことに気づきました。速度とは何ですか?素早くスライドするときと同じように、慣性でスライドできることを常に望みます。この値に慣性値を乗算すると、慣性変位が得られます。 end のコードを見てください。 🎜


🎜rrreee🎜これは モバイルエフェクトに Picke を実装する方法 全体の実装プロセスです。3d 効果なしでも使用できます。 3D 効果を実現する方法を見てみましょう。 doOnValuesChange には初期化があります。 🎜


🎜rrreee🎜は、各 item のインデックスに基づいてディスプレイスメント値を設定します。このとき、各 item の位置が決まります。ディスプレイスメントが互いに近くなるように、absolute である必要があります。それ以外の場合、中央に itemHeight のスペースが存在する可能性があります。 🎜🎜 3D エフェクトで最も重要なポイントは、フリップ角度を計算する方法です。定数オブジェクトはソース コードで定義されています: 🎜


🎜rrreee🎜 表示要素が 3 つだけの場合、強調表示された部分は X を基準にしていることがわかります。 code >軸は平行で、前の <code>itemX 軸を中心に時計回りに 45 度回転する必要がありますが、次の item は回転する必要がありますX 軸を中心に時計回りに /code>軸は反時計回りに 45 度回転します。さらに、私の理解によれば、特に複雑なコードのセクションがあります。 🎜


🎜rrreee🎜 複雑すぎると思われる場合は、次のようなものがあります。実際には、各 item が現在選択されている item に対して前または次の位置にあるかどうかを判断する方法があれば、彼のアプローチに従う必要はありません。これをもとに角度を計算します。 🎜🎜2. 概要🎜🎜 Ele.me の モバイルエフェクトに Picke を実装する方法 コンポーネントについては、全体として、swiper のスライドと非常によく似ています。変位値に基づいて正しい位置にスライドさせるのは、変位値の最終計算にあります。実際、値の計算方法については、誰もが似たような実装になる可能性があり、ソースに従う必要はありません。これにより、コードを書きやすくなる可能性があります。これはほんの少しの個人的な理解ですが、私自身と皆さんに少しでも役立つことを願っています。 🎜

以上がモバイルエフェクトに Picke を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 Mar 28, 2024 pm 12:50 PM

トマト ノベルは非常に人気のある小説閲覧ソフトウェアです。トマト ノベルでは、新しい小説や漫画を読むことができます。どの小説も漫画もとても面白いです。小説を書きたい友達もたくさんいます。お小遣いを稼いで、小説の内容を編集することもできます。 「テキストに文章を書きたいです。それで、小説はどうやって書くのですか?友達は知らないので、一緒にこのサイトに行きましょう。小説の書き方の入門を少し見てみましょう。」 Tomato Novels を使用して小説を書く方法に関するチュートリアルを共有します。 1. まず、携帯電話で Tomato Free Novels アプリを開き、パーソナル センター - ライター センターをクリックします。 2. Tomato Writer Assistant ページに移動し、次の場所で [新しい本の作成] をクリックします。小説の終わり

Colorful マザーボードに BIOS を入力するにはどうすればよいですか? 2つの方法を教えます Colorful マザーボードに BIOS を入力するにはどうすればよいですか? 2つの方法を教えます Mar 13, 2024 pm 06:01 PM

Colorful マザーボードは中国国内市場で高い人気と市場シェアを誇っていますが、Colorful マザーボードのユーザーの中には、設定のために BIOS を入力する方法がまだ分からない人もいます。この状況に対応して、編集者はカラフルなマザーボード BIOS に入る 2 つの方法を特別に提供しました。ぜひ試してみてください。方法 1: U ディスク起動ショートカット キーを使用して、U ディスク インストール システムに直接入ります。ワンクリックで U ディスクを起動する Colorful マザーボードのショートカット キーは ESC または F11 です。まず、Black Shark インストール マスターを使用して、Black Shark インストール マスターを作成します。 Shark U ディスク起動ディスクを選択し、コンピュータの電源を入れます。起動画面が表示されたら、キーボードの ESC キーまたは F11 キーを押し続けて、起動項目を順次選択するウィンドウに入ります。「USB」の場所にカーソルを移動します。 」と表示され、その後

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) May 01, 2024 pm 12:01 PM

残念ながら、WeChat は広く使用されているソーシャル ソフトウェアであり、何らかの理由で特定の連絡先を誤って削除してしまうことがよくあります。ユーザーがこの問題を解決できるように、この記事では、削除された連絡先を簡単な方法で取得する方法を紹介します。 1. WeChat の連絡先削除メカニズムを理解します。これにより、削除された連絡先を取得できるようになります。WeChat の連絡先削除メカニズムでは、連絡先がアドレス帳から削除されますが、完全には削除されません。 2. WeChat の組み込みの「連絡先帳復元」機能を使用します。WeChat には、この機能を通じて以前に削除した連絡先をすばやく復元できる「連絡先帳復元」機能が用意されています。 3. WeChat 設定ページに入り、右下隅をクリックし、WeChat アプリケーション「Me」を開き、右上隅にある設定アイコンをクリックして設定ページに入ります。

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話が人々の日常生活において重要なツールになるにつれて、フォント サイズの設定は重要なパーソナライゼーション要件になりました。さまざまなユーザーのニーズを満たすために、この記事では、簡単な操作で携帯電話の使用体験を向上させ、携帯電話のフォントサイズを調整する方法を紹介します。携帯電話のフォント サイズを調整する必要があるのはなぜですか - フォント サイズを調整すると、テキストがより鮮明で読みやすくなります - さまざまな年齢のユーザーの読書ニーズに適しています - フォント サイズを使用すると、視力の悪いユーザーにとって便利です携帯電話システムの設定機能 - システム設定インターフェイスに入る方法 - 設定インターフェイスで「表示」オプションを見つけて入力します。 - 「フォント サイズ」オプションを見つけて、サードパーティでフォント サイズを調整します。アプリケーション - フォント サイズの調整をサポートするアプリケーションをダウンロードしてインストールします - アプリケーションを開いて、関連する設定インターフェイスに入ります - 個人に応じて

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! Mar 23, 2024 am 10:42 AM

今日の社会において、携帯電話は私たちの生活に欠かせないものとなっています。私たちの日常のコミュニケーション、仕事、生活のための重要なツールとして、WeChat はよく使用されます。ただし、異なるトランザクションを処理する場合は 2 つの WeChat アカウントを分離する必要がある場合があり、そのためには携帯電話が 2 つの WeChat アカウントへの同時ログインをサポートする必要があります。有名な国内ブランドとして、ファーウェイの携帯電話は多くの人に使用されていますが、ファーウェイの携帯電話で 2 つの WeChat アカウントを開設する方法は何でしょうか?このメソッドの秘密を明らかにしましょう。まず、Huawei 携帯電話で 2 つの WeChat アカウントを同時に使用する必要があります。最も簡単な方法は次のとおりです。

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

See all articles