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

您可以使用pageX而不是对象的pageY属性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。

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

演示可以在这里找到: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 回答