我构建了一个使用 jquery 创建图像“循环”的图像滑块。如果您向右走,则第一个图像将被添加到末尾。如果你向左走,最后一张图片会在开头出现。margin-left-value 用于创建滑动外观。到目前为止它似乎有效,但在 Safari 中,边距的动画不起作用。它应该使用缓动函数在 -100px 和 -200px 之间缓和。但是有大约 4000px 的值。
还有其他人在 Safari 中遇到了这些跳跃问题,但我没有找到解决方案。
这是js:
window.onload = function ()
{
$inner = $('#wdgt_slider #inner');
$active = $('#wdgt_slider').children().first();
$slides = $('#wdgt_slider').children().length;
$inner.prepend($inner.children().last()).css({'-webkit-transition':' ', '-moz-transition':' ', '-o-transition':' ', 'transition':' ', 'marginLeft':'-100%'});
$('#wdgt_slider').delegate('input[type=radio]', 'change', function()
{
if($(this).attr("checked") == "checked")
{
if( $(this).index() == ($inner.children().length-1) && $active.index() == 0 )
{
prev();
}
else if( $(this).index() == 0 && $active.index() == ($inner.children().length-1) )
{
next();
}
else if( $(this).index() < $active.index() )
{
prev();
}
else if( $(this).index() > $active.index() )
{
next();
}
$active = $(this);
}
});
}
function next()
{
$inner.animate({
marginLeft:"-200%"
},8000, $.easie(0.77, 0, 0.175, 1),function()
{
//$inner.append($inner.children().first()).css({'-webkit-transition':' ', '-moz-transition':' ', '-o-transition':' ', 'transition':' ', 'marginLeft': "-100%"});
});
}
function prev()
{
$inner.animate({
marginLeft:"0"
},8000, $.easie(0.77, 0, 0.175, 1), function()
{
$inner.prepend($inner.children().last()).css('marginLeft', '-100%');
});
}
我没有作弊,因为问题在960网格系统内部更加明显。这是链接:http ://www.goldentree.de/wordpress/