关于通过jquery来理解position的relative及absolute

 一个多月前刚刚开始系统接触Javascript/css/html的时候一直对position属性的relative及absolute不是很了解。今天在接触jquery中无意间发现通过slideToggle()

的滑动效果可以更加方便清楚的了解position属性的含义。下面是代码。

<!DOCTYPE html>
<html>
<head>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script>

<style type="text/css">
#panel,#flip
{
padding:5px;
text-align:center;
background-color:#e5eecc;
border:solid 1px #c3c3c3;
position:relative;
left:200px;
top:100px;
}
#panel
{
padding:50px;
display:none;
}
</style>
</head>
<body>

<div id="flip">Click to slide the panel down or up</div>
<div id="panel">Hello world!</div>

</body>
</html>

可以注意到这里我写的代码是用了relative,这样才可以实现slideToggle应该有的滑出滑进效果,但如果把position改为absolute,就不能实现可见的滑动滑出效果。

我是这样理解的,当position为绝对时,两个div的位置被固定在一起,于是根本看不出滑动的效果,而属性定为相对,则可以实现滑动滑出的效果。

不知道我说的对不对,有没有大神可以来帮我肯定一下?

 

转载于:https://www.cnblogs.com/shijia-dreamhome/p/4299033.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 jQuery 实现的滑动及点击切换效果的示例代码: HTML 代码: ``` <div class="slider"> <ul> <li class="active">Slide 1</li> <li>Slide 2</li> <li>Slide 3</li> </ul> </div> ``` CSS 代码: ``` .slider ul { list-style: none; margin: 0; padding: 0; overflow: hidden; position: relative; } .slider li { float: left; width: 100%; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 0.5s ease-in-out; } .slider li.active { opacity: 1; } .slider .dots { text-align: center; margin-top: 10px; } .slider .dots span { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background-color: #ccc; margin-right: 5px; cursor: pointer; } .slider .dots span.active { background-color: #333; } ``` jQuery 代码: ``` $(document).ready(function() { // 初始状态,第一个 slide 显示 $('.slider li:first-child').addClass('active'); // 点击 dots 切换 slide $('.dots span').click(function() { var index = $(this).index(); $('.slider li.active').removeClass('active'); $('.slider li').eq(index).addClass('active'); $('.dots span.active').removeClass('active'); $(this).addClass('active'); }); // 自动切换 slide setInterval(function() { var currentIndex = $('.slider li.active').index(); var nextIndex = currentIndex + 1; if (nextIndex >= $('.slider li').length) { nextIndex = 0; } $('.slider li.active').removeClass('active'); $('.slider li').eq(nextIndex).addClass('active'); $('.dots span.active').removeClass('active'); $('.dots span').eq(nextIndex).addClass('active'); }, 3000); }); ``` 通过上述代码,可以实现一个简单的滑动及点击切换效果。具体实现原理是使用 CSS 的 `position: absolute` 属性将每个 slide 定位到容器的左上角,并使用 `opacity` 属性控制它们的显示和隐藏。点击 dots 时,通过 jQuery 的 `index()` 方法获取当前点击的 dots 的索引,然后将相应的 slide 显示出来。自动切换 slide 的实现则是利用了 `setInterval()` 函数定时执行一段代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值