zoukankan      html  css  js  c++  java
  • jQuery Tools Scrollable使用的限制

    在现在很多项目中,都会使用到jQuery Tools中scrollable。特别对于显示Photo Gallery,当然目前国内国外都有第三方非常优秀的的类似jQuery Tools。这是一个基本demo地址:http://jquerytools.org/demos/scrollable/index.html

     

    项目中使用了3个Tab,简称TabA,TabB,TabC,每个Tab下面对应一张图片,图片上有很多hot point,用户点击hot point之后,显示一个overlay。上面的图片是使用Scrollable制作的,上面的图片时一系列的,可以点击previous和next按钮来显示上一张或下一张图片。

    image

     

    Overlay效果:

    image

     

    第一种方案:点击对应的Tab时去加载相应的overlay内容,点击hot point时,显示overlay。但是这里有一个问题,Ajax加载overlay内容时需要时间,并且overlay里面包好了4张图片,加载时间相对较长。我们需要使用一下代码:

    // initialize scrollable together with the autoscroll plugin
    var slideroot= $("#autoscroll").scrollable({circular: true}).autoscroll({ autoplay: false });
     
    // provide scrollable API for the action buttons
    window.slideapi = slideroot.data("scrollable");
    slideapi .seekTo(index, 500); //index是要显示的哪张图片
     

    这时Scrollable API地址:http://jquerytools.org/documentation/scrollable/index.html#api

    。然后previous和next按钮自动绑上了事件,就可以上一张和下一张。但是在第一种方案中,我每次都会调用上面的方法。因为只有等Ajax内容加载完毕,我才可以使用上面的方法。所有每次点击一个hot point时,都会执行上面的方法,这时问题就来了。在第二次执行代码是,slideroot.data(“scrollable”);显示e没有data()方法,也就是scrollable不能同时绑定多次,只能绑定一次,然后赋值给slideapi。但是在Ajax调用的方案中,我不能在页面ready时候就是用上面的代码,因为overlay内容没有加载过来。

    第二种方案:换成最原始的方法,在页面加载的时候,把3个tab对应的overlay content都加载过来,隐藏在那里。然后调用上面的方法,在点击第二个hot point时,只需要调用

    slideapi.seekTo(index,500);就可以。

     

    具体scrollable实现机制没有彻底的分析,但是不值得为什么不对这种方法绑定2次或多次。

     
  • 相关阅读:
    java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized...
    Spring Security 自定义 登陆 权限验证
    springboot中使用spring security,登录url就出现403错误
    RocketMQ最佳实践
    JS 中获取服务器时间的注意点
    许小年:中国经济刚入寒冬,四万亿也救不了
    RestTemplate发送GET请求
    String类的format方法的用法
    参数的打包和解包实例
    16.return 返回值
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2523442.html
Copyright © 2011-2022 走看看