这是一个场景...
我有一个专栏。在该列中,我有多个 div,每个 div 中都有文本。有点像类别列表。选择哪一个都会获得不同的背景颜色。
我希望能够使用 jquery,这样当单击不同的 div 时,背景颜色似乎会滑到其余项目后面,直到到达您选择的项目。
有人知道这是否可以做到吗?如果有的话,对标记有什么想法吗?
非常感谢任何帮助。
需要一个包装器,每个部分的内容容器以及滑动的东西......
<div>
<div class='slider'></div>
<div>Content 1</div>
<div>Content 2</div>
</div>
最佳答案
有趣的请求:) 您可以使用 .animate()
和一点 CSS 来完成此操作,如下所示:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
</script>
<style type="text/css" >
#content div { width: 200px; z-index: 2; }
#content div.slider { position: absolute; background: #99AABB; z-index: -1; }
</style>
</head>
<body>
<script language="javascript" type="text/javascript">
$(function(){
$("#content div:not(.slider)").click(function() {
$(".slider").animate({ top: $(this).offset().top, height: $(this).height() });
});
});
</script>
<div id="content">
<div class='slider'></div>
<div>Content 1 Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test</div>
<div>Content 2<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test</div>
</div>
</body>
</html>
尝试一下:) 只需单击任一 div 即可查看效果。 See a demo here
重要的部分:
- 忽略点击处理程序中的
.slider
div .animate()
与目标 div 相同的偏移/高度- 降低
z-index
,使其显示为背景 - 您可以使用图像,
.slider
div 的 CSS 中的任何内容都可以使用
关于Jquery 滑动到点击位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512143/