2012-08-02 153 views
4

试着让它根据页面左侧或右侧的点击来滚动。似乎没有工作..也许我的语法不正确或我用来找到页面的左侧或右侧的方法是?onclick滚动事件 - 语法?

<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> 
+0

它不工作吗?你有没有收到任何错误信息? – SomeKittens 2012-08-02 17:42:52

+0

意想不到的令牌{在线>>>>>>如果(mouseY <(pwidth/2){ – rootsup 2012-08-02 17:48:37

+0

回答!希望它有帮助。 – SomeKittens 2012-08-02 17:51:14

回答

1

您可以使用pageXevent对象不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)) { 
+0

http://elijahhoffman.com/testsite/ <没有骰子,我是否仍然需要通过body onclick调用此函数?我不擅长于javascript。 – rootsup 2012-08-02 18:17:19

+0

@rootsup不,您应该删除'onclick'属性身体 – undefined 2012-08-02 18:18:47

+0

它是目前,没有骰子? – rootsup 2012-08-02 18:30:45

0

您正在使用clientY。

使用clientX而不是clientY来检查它是在页面的左侧还是右侧进行单击。

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

+0

即时消息一个白痴!哈哈 – rootsup 2012-08-02 18:31:29

1

的.animate()方法可以让我们在任何数字CSS属性创建动画效果。

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

UPD:我的坏,因为文档说:

除了样式属性,一些非样式属性,如scrollTop的和scrollLeft,以及自定义属性,可以是动画。

+0

滚动功能工作正常时调用它自己的,这是休息 – rootsup 2012-08-02 17:54:34

0

行:

if (mouseY<(pwidth/2) { 

缺少一个关闭)。试试这个:

if (mouseY<(pwidth/2)) {