私は長い間ここに潜んでいましたが、今、本当に取り組むことができない問題に直面しています。
これは単純な#viewport
and.canvas
で、.canvas
は超広角であり、#viewport
次のoverflow:hidden
とおりです。
<div id="viewport">
<div class="canvas">
<a href="#" onclick="alert('event fired, boo.')">do not fire on mouse up</a>
</div>
</div>
ここにあるコードを使用して、jQuery でドラッグ スクローラーを作成したので、クリックし#viewport
てドラッグすると、コンテンツがスクロールされ、最も近い 190 ピクセルの倍数にスナップされます (関連性はありませんが、誰かが私のコードを必要とする可能性があります)。
$("html").mouseup(function(e) {
down = false;
$("#viewport").animate({scrollLeft:(190 * Math.round($("#viewport").scrollLeft() / 190))}, 150);
});
$("#viewport").mousedown(function(e) {
e.preventDefault();
down = true;
x = e.pageX;
left = $(this).stop().scrollLeft();
});
$(document).mousemove(function(e) {
if (down) {$("#viewport").scrollLeft(left - e.pageX + x);}
});
私がしたいのは、リンク上でドラッグを開始することだけです。マウスアップしたときに、リンクが起動しないようにするだけです。
e.preventDefault()
いたるところに配置しようとしましたが、マウスを離したときにリンクが起動するのを防ぐことができないようです。