weui.js sliderの使用ノート
4413 ワード
1、前に書いたくだらない話
最近、企業の微信アプリケーションを開発する際にweuiに触れた.その中のslider機能を使用しました.私の使い方が間違っているかどうか分かりませんが、sliderには一定の互換性の問題があることに気づきました.pc端と移動端ではうまく互換性がありません.だからここにドキュメントを書いて、メモを取って、後で準備します.
2、sliderの使用
ここにいるよjsにおけるsliderの1つの使い方は以下の通りです.
[options.step]
number
sliderのstep、移動ごとのパーセント、値範囲[0-100]
[options.defaultValue]
number
0
sliderのデフォルトパーセント値、値範囲[0-100]
[options.onChange]
function
sliderが変更された場合、対応するパーセントが返され、値範囲[0-100]
html
js
weui.slider('#slider', {
step: 10,
defaultValue: 40,
onChange: function(percent){
console.log(percent);
}
});
この書き方は移動端のsliderドラッグ効果もよくないことに気づきました.そして私のプロジェクトは、3つのイベントに対して異なる操作をしなければなりません(touchstart、
touchmove,touchend)のため,以下の方法が用いられる.
これは原生的な書き方です.htmlは上と同じで、違いはjsの上にあります.
$(function(){
var $sliderTrack = $('#sliderTrack'),
$sliderHandler = $('#sliderHandler'),
$sliderValue = $('#sliderValue');
var totalLen = $('#sliderInner').width(),
startLeft = 0,
startX = 0;
$sliderHandler
.on('touchstart', function (e) {
startLeft = parseInt($sliderHandler.css('left')) * totalLen / 100;
startX = <span style="color:#FF0000;">e.originalEvent.changedTouches[0].clientX; // </span>
<span style="color:#FF0000;">//pc :e.originalEvent.clientX;</span>
})
.on('touchmove', function(e){
var dist = startLeft + <span style="color:#FF0000;">e.originalEvent.changedTouches[0].clientX</span> - startX,
<span style="color:#FF0000;">//pc :e.originalEvent.clientX;</span>
percent;
dist = dist < 0 ? 0 : dist > totalLen ? totalLen : dist;
percent = parseInt(dist / totalLen * 100);
$sliderTrack.css('width', percent + '%');
$sliderHandler.css('left', percent + '%');
$sliderValue.text(percent);
e.preventDefault();
})
.on('touchend',function(e){
//
});
});
以上のjsコードはsliderの原生的な書き方ですが、touchstart,touchmove,touchendは移動端イベントなのでpc端ではこのコードは使えません.ネット上では、上の3つのイベントの代わりにmousedown、mousemove、mouseonを使うという説がたくさんありますが、個人的にはそれほど使いにくいと思います.ここでは2つのpc端の代替書き方をお勧めします.2.1、h 5のdragとdrogで
対応するtouchstart,touchmove,touchendをdragstart,drag,dragendに変更します.それぞれは,ユーザが要素のドラッグを開始するとトリガーされ,ユーザが要素のドラッグを開始するとトリガーされ,ユーザが要素のドラッグを完了するとトリガーされることを示す.もちろん、他にもいくつかの事件があります.
( ):
ondragstart -
ondrag -
ondragend -
:
ondragenter -
ondragover -
ondragleave -
ondrop - ,
興味があれば研究してもいいです.
2.2、jquery ui draggable
このjquery-ui対応のcssとjsファイルを導入するのですが、個人的にはapiが完備しているので、プロジェクトでもこれが使いやすいと思います.
使用法は次のとおりです.
$sliderHandlersubTask.draggable({
axis: "x",// x
// containment: draggable , :'parent', 'document', 'window', [x1, y1, x2, y2].
containment:'parent' ,
start: function(e,v) {
},
drag: function(e,v) {
},
stop: function(e,v) {
}
});
実は彼はたくさんのパラメータを持っていて、ネット上で調べることができます.例えば、draggableの中国語のドキュメントと英語のドキュメントなどです.
ドラッグ・イベントを禁止する方法は、次のとおりです.
$sliderHandlersubTask.draggable({
//true: ,false:
disabled: true
});
しかし、以上のすべての発生の基礎は、ドラッグする要素に属性「ui-draggable ui-widget-content」を加えることです.3、まとめ
以上は最近のまとめですが、后で使う时に自分で理解してほしいし、必要な友达が参考にしてくれることを望んでいます.初心者、间违ったところがあれば教えてください.