我正在为一个商业网站使用unslider,我正在制作响应式网站,因此添加触摸支持功能非常吸引人。不幸的是,它并不能像作者所声称的那样直接使用。
更新
我使用的unslider插件已经过时了。我最初在unslider.com上下载了它(那里仍然是一个过时的版本),因此我遇到了困难。
如果您需要获取最新版本,请访问:https://github.com/idiot/unslider/
如果您想查看我的问题报告,请访问:https://github.com/idiot/unslider/issues/69
问题在于作者已经4个月没有更新他的项目,自那以后,滑动事件已从$.event.swipe移动到$.event.special.swipe。
问题出现在unslider插件的第108行,它测试滑动插件是否存在。
108: if($.event.swipe) {
109: this.el.on('swipeleft', _.prev).on('swiperight', _.next);
只需将其更改为:
108: if($.event.special.swipe) {
109: this.el.on('swipeleft', _.prev).on('swiperight', _.next);
这是个容易解决的问题,但需要一些搜索才能找到答案。
如果你想确保它能与早期版本兼容,可以这样做:
108: if($.event.special.swipe || $.event.special.swipe) {
109: this.el.on('swipeleft', _.prev).on('swiperight', _.next);
但我不建议这样做。
另外,作者没有提到这一点,但滑动插件页面有提到,除了jquery.event.swipe,您还需要在脚本中包含jquery.event.move。
希望这能帮助某些人 :)
回答下面的评论:
记得按正确顺序包含所有文件,并记住它们全部:
<script type="text/javascript" src="/scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.move.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.swipe.js"></script>
<script type="text/javascript" src="/scripts/unslider.min.js"></script>
这个对我没用,但是经过大量调整后,我成功地让它顺利运行了。我逐步记录了我所做的事情,但没有解释为什么。 http://frazer.livejournal.com/21898.html
我希望这能帮助那些刚接触Drupal的人。
简而言之 - 我将这个添加到我的页面中,然后就得到了响应式的动作:
var wrap = jQuery(".slides_wrap"),
slides = wrap.find(".img_slide"),
width = slides.width();
slides
.on("move", function(e) {
// Move slides with the finger
// banner has moved -100% when one slide to the right
var left = 100 * e.deltaX / width;
wrap[0].style.left = parseInt(wrap[0].style.left.replace("%", ""))+left+"%";
})
.on("moveend", function(e) {
setTimeout(function(){
var left = parseFloat(wrap[0].style.left.replace("%", ""));
var left_rounded = Math.round(left/100)*100;
if(left%100!=0){
jQuery(".slides_wrap").animate({"left":left_rounded + "%"});
}
},800);
});
截至今天(2014年11月),似乎滑动功能已被移动功能所取代。插件的网址是http://stephband.info/jquery.event.move/。只需导入此插件,而不是滑动插件。
希望有人会发现这个有用。我不得不检查提交记录才能找到答案。
我在这个主题上遇到了问题,因为我是一个真正的新手,并且在安装Jquery.event.swipe.js模块时遇到了麻烦。
现在问题已经解决,但以下是一些像我这样的新手需要注意的事项:
在html文件中不需要额外的javascript代码,它应该可以使用上述方法(至少对我来说是这样)
这两个都是非常好的免费工具,感谢开发人员
complete
事件。这样你可以获得处于活动状态的 div,否则你就必须选择它,我想。 - André Snede