onclick滚动事件 - 语法?

时间:2012-08-02 17:33:35

标签: javascript jquery syntax

尝试让它根据页面的左侧或右侧是否单击进行滚动。似乎不起作用..也许我的语法不正确或者我用来查找页面左侧或右侧的方法是?

<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 个答案:

答案 0 :(得分:1)

  

.animate()方法允许我们在任何数字 CSS属性上创建动画效果。

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

.scrollLeft()是一个jQuery函数,而不是css属性。

upd:我的不好,正如文档所说:

  

除了样式属性外,还可以为一些非样式属性(如scrollTop和scrollLeft)以及自定义属性设置动画。

答案 1 :(得分:1)

您可以使用pageX对象的event而非 pageY 属性,请尝试以下操作:

  

相对于文档左边缘的鼠标位置。

$(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) ) {

答案 2 :(得分:0)

您正在使用clientY。

使用clientX而不是clientY来检查它是否被点击在页面的左侧或右侧。

演示可以在这里找到:http://jsfiddle.net/codebombs/UT9xK/

答案 3 :(得分:0)

该行:

if (mouseY<(pwidth/2) {

缺少结束)。试试这个:

if (mouseY<(pwidth/2)) {