这是我第一次尝试开发带有触摸事件的东西。我有一个在悬停时动画的滑块,前两张幻灯片的链接可以在点击时显示隐藏的内容。试图找出一种方法来调整它,以便内容在滑动而不是悬停时动画,并且仍然保持幻灯片中链接的“点击”。我使用的站点有 jQuery 1.3.2,没有升级的希望,所以希望找到可以与那个旧库一起使用的东西。
您可以在此处查看正在进行的滑块。我也把它变成了小提琴:http: //jsfiddle.net/uqY8E/
最终,我想要实现的是当用户滑动手指时移动幻灯片(如果 iPad 上的背景是静态的就可以),如果他们抬起手指,动画就会停止,就像它开始和停止一样徘徊。我阅读了这篇文章并创建了一个 if/else 语句,因此它仍然可以在悬停时工作。动画在 iPad 上不起作用,但箭头不显示,所以我认为 if 语句是正确的。
jQuery :
$(document).ready(function() {
var timer;
if(!!('ontouchstart' in window)){
$("#nextarrow, #backarrow").hide();
$(".mid").bind('touchstart', function(){
timer = setInterval(function() {swipeLeft();}, 50);
}, function() {
clearInterval(timer);
});
function swipeLeft() {
if(($(".mid").position().left) >= -1880){
$("#background").stop().animate({
'left': '-=2px'
}, 50);
$(".mid").stop().animate({
'left': '-=20px'
}, 50);
}
}
}
else{
$("#nextarrow").hover(function() {
timer = setInterval(function() {slideLeft();}, 50);
}, function() {
clearInterval(timer);
});
$("#backarrow").hover(function() {
timer = setInterval(function() {slideRight();}, 50);
}, function() {
clearInterval(timer);
});
function slideLeft() {
if(($(".mid").position().left) >= -1880){
$("#background").stop().animate({
'left': '-=2px'
}, 50);
$(".mid").stop().animate({
'left': '-=20px'
}, 50);
}
}
function slideRight() {
if(($(".mid").position().left) <= -10){
$("#background").stop().animate({
'left': '+=2px'
}, 50);
$(".mid").stop().animate({
'left': '+=20px'
}, 50);
}
}
}
$("#shop-slide1").click(function() {
$("#shop-slide1-contents").animate({'bottom': '-0px'}, 1000);
$(".close").click(function() {
$("#shop-slide1-contents").animate({'bottom': '-525px'}, 1000);
});
});
$("#shop-slide2").click(function() {
$("#shop-slide2-contents").fadeIn('slow');
$(".close").click(function() {
$("#shop-slide2-contents").fadeOut('fast');
});
});
});
HTML:
<div id="mask">
<div id="nextarrow"></div>
<div id="backarrow"></div>
<div id="background"></div>
<div class="mid">
<div id="slide1" class="slide">
<p id="shop-slide1" class="shop-link">+ Shop The Collection</p>
</div>
<div id="slide2" class="slide">
<p id="shop-slide2" class="shop-link" style="color: #fff; font-weight: bold;">+ I need this</p>
</div>
<div id="slide3" class="slide"></div>
<div id="slide4" class="slide"></div>
<div id="slide5" class="slide"></div>
</div>
</div>
我需要专门为 iPad 更改 swipeLeft 功能吗?我从悬停事件中复制了它。非常感谢任何有助于使其工作的帮助 - 或为 iPad 调整它的替代方法的建议 - 非常感谢。我是这方面的新手,要学的东西很多!