ホームページ  >  記事  >  WeChat アプレット  >  WeChat アプレット コンポーネント マーキーのサンプル共有

WeChat アプレット コンポーネント マーキーのサンプル共有

小云云
小云云オリジナル
2018-01-06 10:48:003022ブラウズ

この記事では主にWeChatアプレットコンポーネントのマーキーサンプルの詳細な説明に関する関連情報を紹介しますので、必要な方は参考にしていただければ幸いです。

WeChatミニプログラムコンポーネントのマーキー例の詳細説明

1.マーキータグ

htmlにはマーキータグがあり、マーキー効果を実現できますが、ミニプログラムにはそれがないため、実装する必要があります。ここでは CSS3 アニメーション実装の使用を検討してください。

HTMLのマーキーはこんな感じで使います。


<marquee direction="left" behavior="scroll" scrollamount="1" scrolldelay="0" loop="-1" width="200" height="50" bgcolor="#0099FF" hspace="10" vspace="10">
   hello world
</marquee>

2. wxml


<view class="marquee_container" style="--marqueeWidth--:{{-marquee.width}}em">
  <view class="marquee_text">{{marquee.text}}</view>
</view>

wxmlに渡されるのはjsonオブジェクトです


marquee:{
  width:12,
  text:&#39;hello world&#39;
}

そして、その奇妙な点-marqueeWidthは@keyframesに渡される変数です。変数はインラインで設定され、css ファイルで取得することもできます。

3. wxss


@keyframes around {
  from {
   margin-left: 100%;
  }
  to {
   margin-left: var(--marqueeWidth--);// var接受传入的变量
  }
 }

.marquee_container{
 background-color: #0099FF;
 height: 1.2em;
 position: relative;
 width: 100%;
}
.marquee_container:hover{
 animation-play-state: paused; // 不起作用
}
.marquee_text{
 display: inline-block;
 white-space: nowrap;
 animation-name: around;
 animation-duration: 5s;
 animation-iteration-count: infinite;
 animation-timing-function:linear;
}

4. js


export default {
 getWidth:(str)=>{
  return [].reduce.call(str, (pre, cur, index, arr) => {
   if (str.charCodeAt(index) > 255) {// charCode大于255是汉字
    pre++;
   } else {
    pre += 0.5;
   }
   return pre;
  }, 0);
 },
 getDuration:(str)=>{// 保留,根据文字长度设置时间
  return this.getWidth()/10;
 }
}

以上がコンポーネントのパッケージです。 R5. re

// wxml
<include src="../component/marquee/marquee.wxml" />
// wxss
@import "../component/marquee/marquee.wxss";
// js
import marquee from &#39;../component/marquee/marquee.js&#39;;

var options = Object.assign(marquee, {
 data: {
  motto: &#39;Hello World&#39;,
  userInfo: {},
  marquee: { text: &#39;你好,中国!hello,world!&#39; }
 },
 onLoad: function () {
  // ...

  const str = this.data.marquee.text;
  const width = this.getWidth(str);
  console.log(&#39;width&#39;,width);
  this.setData({ [`${&#39;marquee&#39;}.width`]: width });
 }
});
Page(options);
を使用します

関連する推奨事項:

Hhtml の Marquee ラベルの詳細な紹介


スクロール効果の純粋なローリング効果を完成させるための Marquee ラベルの使用方法を要約します

HTMLコード

以上がWeChat アプレット コンポーネント マーキーのサンプル共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。