平滑jQuery转换
Smooth out a jQuery transition
我有以下代码:
<script>
$(document).ready(
function()
{
var middleIndex = 3;
var maxIndex = $("ul li").length - 1;
var minIndex = 0;
$('ul#reel li').mouseover(function()
{
var index = $(this).parent().children().index(this);
var tempIndex;
var showIndex;
var visibleRows = $("ul li:visible").length;
if(index > middleIndex && visibleRows == 7)
{
tempIndex = middleIndex - 3;
showIndex = middleIndex + 4;
if(tempIndex <= maxIndex && showIndex <= maxIndex)
{
$("ul li:eq("+tempIndex+")").hide(500);
$("ul li:eq("+showIndex+")").show(500);
middleIndex++;
}
}
else if(index < middleIndex)
{
tempIndex = middleIndex + 3;
showIndex = middleIndex - 4;
if(tempIndex <= maxIndex && showIndex >= minIndex)
{
$("ul li:eq("+tempIndex+")").hide("slow");
$("ul li:eq("+showIndex+")").show("slow");
middleIndex--;
}
}
});
});
</script>
JSFIDDLE
我希望右侧的动画与左侧的动画一样平滑。如何做到这一点?我认为它在右侧减速的原因是因为它循环通过所有的LI来找到最大指数,但我不确定。
从第一个if语句中删除&& visibleRows == 7
或将其更改为&& visibleRows >= 7
可以解决此问题。
当其中一个窗格处于转换状态时,visibleRows
的求值值为8或更大,这会导致它停止,并且直到再次移动鼠标时才会继续。如果允许代码在鼠标向右移动时运行,动画就会很好地排队。
相关文章:
- 从javascript到jquery的转换
- 如何使用jquery将base64图像路径转换为真实路径
- 将curl查询转换为jQuery.ajax()
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- js代码从jQuery转换为原生代码
- javascript/jquery将utc转换为短格式的本地时间
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- 将javascript代码转换为jquery代码时出错
- CSS3转换+jQuery翻转卡问题
- 转换jquery的悬停点击事件
- 正在转换JQuery对象
- 如何在一个AngularJS指令中转换jQuery函数
- 如何转换jquery's$.post()转换为纯javascript
- 在mootools中转换jquery代码
- 如何转换jQuery $.ajax调用蓝鸟承诺没有延迟的反模式
- 如何转换jQuery过滤器以使用waitForKeyElements
- 转换 jQuery 对象中的 lodash/underscore 集合(链接)
- 转换jquery "click"用于PHP调用的代码
- 转换jQuery函数,使其易于重用而无需重复