我的功能不适用于元素a.left
,有人可以告诉我为什么会这样吗?
<section class="slideshow-control" style="">
<a class="left" href="#">
<span>«</span>
</a>
<a class="right" href="#">
<span>»</span>
</a>
</section>
var sc = sc.find('.slideshow-control');
var sw = sc.find('.slideshow-wrapper');
sc.find('a.left').click(function() {
var swl = Math.min(0, parseInt(sw.css('left')) + sesw);
sw.animate({ 'left': swl }, 800, 'easeInOutCirc');
return false;
});
答案 0 :(得分:0)
您的代码中存在一些错误,缺少某些变量。 如果我承担你脚本的行为,下面的jsfiddle应该可以工作:
您需要设置2件事并查看您的html:
<section class="slideshow-wrapper" style="">
<section class="slideshow-control" style="">
<a class="left" href="#"><span>«</span></a>
<a class="right" href="#"><span>»</span></a>
</section>
</section>
添加此css,以便元素可以应用左自动动画:
.slideshow-wrapper {
position:relative;
left: 0;
}
左右css属性适用于相对/绝对定位元素。
而不是运行js:
var sc = $('.slideshow-control');
var sw = $('.slideshow-wrapper');
sc.find('a.left').click(function() {
moveBy = parseInt(sw.css("left"))-100;
if(moveBy >= 0)
sw.animate({ 'left': moveBy });
return false;
});
sc.find('a.right').click(function() {
moveBy = parseInt(sw.css("left"))+100;
if(moveBy < $(document).width())
sw.animate({ 'left': moveBy }, 'easeInOutCirc');
return false;
});
我添加了一些控件以防止元素从文档中消失。 你可以从这开始,添加一些其他变量或用你的行为重写它。