点击滚动事件 - 语法?

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>

它完全不工作吗?你有收到任何错误信息吗? - SomeKittens
在以下行代码中出现意外的标记 {>>>>>> if (mouseY<(pwidth/2) { - rootsup
4个回答

2
您可以使用事件对象的pageX属性而不是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) {

should be:

if ( mouseY < (pwidth/2) ) {

http://elijahhoffman.com/testsite/ < 没有结果,我是否仍需要通过body onclick调用此函数?我对JavaScript不是很擅长。 - rootsup
@rootsup 不,你应该删除 body 的 onclick 属性。 - Ram
@rootsup ...如果您将该代码放入.js文件中,则可以在任何页面上包含它,而不必在每个需要它的页面上重复。 - Stephen P

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

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

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

更新:我的错误,根据文档所述:

除了样式属性外,一些非样式属性(如 scrollTop 和 scrollLeft)以及自定义属性也可以进行动画处理。


滚动功能单独调用时运行良好,但其他部分存在问题。 - rootsup

0

0

这行代码:

if (mouseY<(pwidth/2) {

缺少一个闭合的)。请尝试以下操作:

if (mouseY<(pwidth/2)) {

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接