jQWidgets jqxRibbon scrollDelay属性

  • Post category:jquery

jqxRibbon是一个基于jQuery和jQuery UI的UI组件库。它提供多种样式和主题,并提供许多内置的UI组件,如标签页,按钮,下拉框和菜单等。scrollDelay属性是jqxRibbon组件的一个属性,用于设置在滚动鼠标滚轮时延迟滚动的时间。

使用scrollDelay属性,可以提高jqxRibbon组件在鼠标滚轮滚动时的性能和用户体验。下面是一个示例,说明如何使用scrollDelay属性:

$("#ribbon").jqxRibbon({
  scrollDelay: 200
});

在上面的示例中,我们将scrollDelay属性设置为200,表示在滚动鼠标滚轮时需要延迟200毫秒才开始实际滚动。这意味着在用户开始滚动鼠标时,不会立即触发滚动,而是等待200毫秒,然后开始平滑地滚动。

下面是另一个示例,演示如何在jqxRibbon组件内部创建一个带有延迟滚动的滚动条:

$("#ribbon").jqxRibbon({
  scrollDelay: 200,
  scrollPosition: "both",
  initContent: function () {
    $("#ribbon").jqxRibbon("setContent", "tab1", "<div id='scrollable-content' style='height: 250px; overflow: auto;'>" +
      "<div style='height: 2000px;'>" +
      "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla in sem vel risus mollis accumsan quis eu diam. Suspendisse pellentesque, ipsum in bibendum suscipit, eros mi sollicitudin orci, at congue est nunc eu sapien. Curabitur rutrum nibh id turpis porta pretium. Vestibulum porttitor viverra sapien, ut faucibus lacus iaculis vel. Etiam vehicula porta lectus, non pretium tellus volutpat eu. Vivamus vitae urna imperdiet, pharetra lectus eu, sodales turpis. Donec faucibus nisi eget mauris bibendum euismod.</p>" +
      "<p>Etiam non quam vel justo feugiat sollicitudin. Duis eget felis libero. Maecenas semper ornare lacus, eget molestie turpis egestas a. Vivamus vel leo et nisl pharetra ornare. Vivamus consequat risus sit amet mi pharetra faucibus. Nunc ut tortor metus. Maecenas molestie, magna a gravida malesuada, sapien sapien bibendum massa, in auctor tortor magna eu nisi. Nullam vitae lacus pharetra velit egestas convallis.</p>" +
      "<p>Donec mauris velit, lobortis eu turpis non, sagittis porttitor lectus. Maecenas vel lectus semper, accumsan leo vel, lobortis nisi. Integer quis velit sit amet enim eleifend dictum. Sed gravida tristique semper. Nunc ligula nulla, scelerisque eu eleifend et, lobortis vel nisi. Fusce aliquet nibh elit, sed auctor ligula sollicitudin eu. Integer sem ipsum, accumsan vel convallis in, congue et lectus. Phasellus molestie, elit eu vehicula tempus, nisi mauris pharetra dolor, blandit aliquam felis neque sed nibh. Integer blandit at tortor non ultricies. Proin at vulputate elit. Donec non augue sagittis, bibendum sapien eget, suscipit leo. Duis id vestibulum quam. Nunc quis purus ac tortor ultrices blandit. Nulla pulvinar magna eu nunc convallis, a posuere libero vulputate.</p>" +
      "<p>Donec pretium at sapien vel cursus. Vivamus eget sagittis felis. Vestibulum at turpis ut justo tristique interdum. Cras a molestie ipsum. Duis quis justo metus. Quisque vel velit vel diam scel arcu sod stique.</p>" +
      "<p>Sed vel justo euismod, sollicitudin ipsum eget, congue nulla. Donec ultricies ex odio, eget elementum metus aliquam sed. Sed consequat eros et eros accumsan, ac cursus diam porta. Pellentesque nec libero in massa consequat placerat vel et diam. Integer sollicitudin, leo ac pellentesque pellentesque, nibh felis ultrices nunc, a mollis lorem nulla a justo. In feugiat suscipit dolor, a congue tellus scelerisque vel. Aliquam ut odio ultrices, consequat diam vitae, posuere erat. Ut vitae neque vitae ipsum varius consequat. Vivamus condimentum maximus aliquet. Fusce ullamcorper leo vel nulla sollicitudin, eu auctor enim placerat. Morbi varius nisi et pulvinar bibendum. Aenean felis sapien, fermentum eu venenatis ac, efficitur vel libero.</p>" +
      "</div>" +
      "</div>");
  }
});

$("#scrollable-content").on("mousewheel", function (e) {
  e.preventDefault();
  var delta = e.originalEvent.wheelDelta;
  var dir = delta > 0 ? "-=1" : "+=1";
  $("#scrollable-content").stop().animate({
    scrollTop: dir
  }, 20);
});

在上面的示例中,我们首先在jqxRibbon组件上设置了scrollDelay属性和initContent事件。然后,在initContent事件中,我们设置了带有滚动条的内容。最后,在$("#scrollable-content").on("mousewheel")函数中,我们编写了一个事件,以响应鼠标滚轮事件并上传滚动。

在这个示例中,我们使用了stop()animate()函数来平滑的滚动滚动条,并且滚动滚动条的速度与鼠标滚轮的速度成比例。