2017-01-16 10 views
0

私はかなり面白い仕事をしています - 私はボリュームバーを備えた外部プレーヤーを持っており、このボリュームバーの選択された場所をクリックすることを模倣する必要があります。jquery set要素の選択された場所をクリック

このボリュームバーの先頭をクリックすると音量が小さくなります。 この音量バーの最後をクリックすると音量が大きくなります。

私はすべての要素(私のケースではボリュームバー全体)のトリガーを起動することができますが、どのように要素の特定の部分でクリックトリガーを発射できますか?たとえば - このようなもの$(".volume_bar").trigger("click": {left:30%});

アイデア?

+0

私はあなたが要素のシミュレートされたクリックを引き起こさないことですが、そのクリックが実際に何をするかに基づいて関数呼び出しを起動することです。たとえば、ユーザーが30%のボリュームバーをクリックすると、ボリュームをその量に変更する機能が起動されると考えられます。したがって、偽のクリックをトリガーしようとするよりもむしろ。実際のクリックの結果となる関数呼び出しを設定します。おそらく、引数として設定された量を使用します。例えば、setVolume('30% '); – gavgrif

+0

あなたはどちらのプレーヤーですか?プレイヤーはAPIを持っています。 –

+0

@MoshFeu、残念ながら、このプレーヤーにはAPIがありません:( –

答えて

0

要素の位置を取得し、目的の位置でクリックをトリガする必要があります。そのためにはjQueryのoffset()を使用できます。イベントのpageXパラメータとpageYパラメータは、hereとして設定できます。

は、与えられた場所でイベントをトリガするには、コードは次のようになります。

var $element = $('#element') 
$element.width() // get the width 
$element.height() // get the height 

var event = new $.Event('click'); 
event.pageX = $element.offset().left + $element.width() * 0.5 
event.pageY = $element.offset().top + $element.height() * 0.5 

$element.trigger(event) // this should click in the middle 

警告テストされていません!とにかく、あなたは要点を得る...

関連する問題