【问题标题】:onclick scroll event - syntax?onclick 滚动事件 - 语法?
【发布时间】:2012-08-02 17:33:34
【问题描述】:

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

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

【问题讨论】:

  • 它根本不起作用吗?您收到任何错误消息吗?
  • 意外的标记 { 在行>>>>>> if (mouseY

标签: javascript jquery syntax


【解决方案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) ) {

【讨论】:

  • @rootsup 不,您应该删除正文的onclick 属性。
  • @rootsup ...如果您将该代码放在.js 文件中,您可以将其包含在任何页面上,而不是在您想要的每个页面上复制它。
【解决方案2】:

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

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

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

upd:我的错,正如文档所说:

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

【讨论】:

  • 滚动功能在单独调用时可以正常工作,剩下的就交给它了
【解决方案3】:

您正在使用 clientY。

用clientX代替clientY来检查是点击页面左侧还是右侧。

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

【讨论】:

    【解决方案4】:

    行:

    if (mouseY<(pwidth/2) {
    

    缺少结束)。试试这个:

    if (mouseY<(pwidth/2)) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 2018-06-01
      • 1970-01-01
      • 2013-09-21
      • 2020-01-23
      • 2018-06-27
      相关资源
      最近更新 更多