Vue.jsを学習しており、練習問題としてSPAを開発しています。私は再帰的にいくつかのアイコンをimgとしてコンポーネントを介して追加します。すべての画像が適切に示されているコンポーネント機能は最初のコンポーネントでのみ動作します。Vue.js
Vue.js
Vue.component('icon', {
template:
'<img id="logo-icon" v-on:mouseover="animation"
class="platform_button" width="50" height="50"
src="../assets/img/logos/Android_icon.png" alt="img" />',
methods: {
animation: function(){
animate("#logo-icon","animated bounce")
}
}
})
new Vue({
el: '#apps'
})
...
.htmlの
<div id="apps">
...
<div v-for="(el, in) in x" style="width:50%">
<icon></icon>
</div>
...
</div>
(コードの多くは、問題に焦点を当てるために省略されています)。私は、マウスが画像をホバリングしてアニメーションを開始したい。アニメーション化する機能はうまく動作しますが、問題は、どの画像にマウスを乗せても、は最初の画像だけが跳ね返ることです。例えば。私がマウスでimg1にいると、img1が跳ね返ります。私がマウスでimg5を使用している場合、img1はimg5の代わりにバウンスします。 マウスで覆われた画像のみをアニメーション化するにはどうすればよいですか?
なぜなら、「id」は各要素に対して一意でなければならないからです。 'id'の代わりにclassを使うようにしてください。 – wostex
どちらのIDですか?アプリやロゴアイコン? – Razinar
あなたのアイコンコンポーネントには 'id ="ロゴアイコン "があり、レンダリングされる各アイコンコンポーネントに対して繰り返されます。しかし、 'id'はユニークでなければなりません。なぜなら' animate'関数は '#logo-icon'で呼び出すときに一つの要素にしか影響しません。 – thanksd