5

ページの左側または右側でクリックされたかどうかに基づいてスクロールさせようとしています。動作しないようです。構文が正しくないか、ページの左側または右側を見つけるために使用している方法が間違っている可能性がありますか?

<body onclick="scrollevent()">

 <script>
 function scrollevent()
 { 
    var y=0;
    var pwidth = $('#slideshow').width();
    var mouseY = ev.clientY;

    if (mouseY<(pwidth/2) {
        $('#slideshow').animate({scrollLeft: "+=400"});
     }
     else{
        $('#slideshow').animate({scrollLeft: "-=400"});
    }
 }
 </script>
4

4 に答える 4

2

オブジェクトのpageYプロパティではpageXなく、使用できます。次のことを試してください。event

ドキュメントの左端を基準にしたマウスの位置。

$(document).click(function(e){  // or $(document).on('mousemove', function(e){
   var mp = e.pageX;
   var w = $(window).width() / 2;
   if (mp < w) {
        $('#slideshow').animate({scrollLeft: "+=400"});
   } else {
        $('#slideshow').animate({scrollLeft: "-=400"});
   } 
})

コードに構文エラーがあることに注意してください)。:を見逃しています。

if (mouseY<(pwidth/2) {

する必要があります:

if ( mouseY < (pwidth/2) ) {
于 2012-08-02T17:48:11.077 に答える
1

.animate()メソッドを使用すると、任意の数値CSSプロパティにアニメーション効果を作成できます。

http://api.jquery.com/animate/

.scrollLeft()はjQuery関数であり、cssプロパティではありません。

upd:ドキュメントが言うように、私の悪い:

スタイルプロパティに加えて、scrollTopやscrollLeftなどの一部の非スタイルプロパティ、およびカスタムプロパティをアニメーション化できます。

于 2012-08-02T17:47:02.627 に答える
0

clientYを使用しています。

clientYの代わりにclientXを使用して、ページの左側または右側でクリックされているかどうかを確認します。

デモはここにあります:http://jsfiddle.net/codebombs/UT9xK/

于 2012-08-02T17:44:43.140 に答える
0

この線:

if (mouseY<(pwidth/2) {

クロージングがありません)。これを試して:

if (mouseY<(pwidth/2)) {
于 2012-08-02T17:50:53.900 に答える