【发布时间】:2014-08-16 08:51:22
【问题描述】:
我想创建 水平响应式页面导航,如下图所示:
这就是我设法做到的:DEMO
$(document).ready(function () {
var slideNum = $('.page').length,
wrapperWidth = 100 * slideNum,
slideWidth = 100/slideNum;
$('.wrapper').width(wrapperWidth + '%');
$('.page').width(slideWidth + '%');
$('a.scrollitem').click(function(){
$('a.scrollitem').removeClass('selected');
$(this).addClass('selected');
var slideNumber = $($(this).attr('href')).index('.page'),
margin = slideNumber * -100 + '%';
$('.wrapper').animate({marginLeft: margin},1000);
return false;
});
});
html, body {
height: 100%;
margin: 0;
overflow-x:hidden;
position:relative;
}
nav{
position:absolute;
top:0; left:0;
height:30px;
}
.wrapper {
height: 100%;
background: #263729;
}
.page {
float:left;
background: #992213;
min-height: 100%;
padding-top: 30px;
}
#page-1 {
background: #0C717A;
}
#page-2 {
background: #009900;
}
#page-3 {
background: #0000FF;
}
a {
color:#FFF;
}
a.selected{
color: red;
}
.simulate{
height:2000px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="wrapper">
<nav>
<a href="#page-1" class="scrollitem selected">page 1</a>
<a href="#page-2" class="scrollitem">page 2</a>
<a href="#page-3" class="scrollitem">page 3</a>
</nav>
<div id="page-1" class="page">
<h3>page 1</h3>
<div class="simulate">Simulated content heigher than 100%</div>
</div>
<div id="page-2" class="page">
<h3>page 2</h3>
<div class="simulate">Simulated content heigher than 100%</div>
</div>
<div id="page-3" class="page">
<h3>page 3</h3>
<div class="simulate">Simulated content heigher than 100%</div>
</div>
</div>
然而,我遇到了几堵砖墙,因为我的反应在一定程度上,就像你缩放它需要坚持到它所在的页面而不显示其他页面。
此外,如果页面很长,它会显示一个完美的滚动条,但在最后一张幻灯片上,有一个与滚动条一样宽的间隙。
我有以下要求:
- 需要响应
- 页面需要能够很长(800 像素)并且仍然可以滚动,并且与最后一个页面没有间隙。
- 需要在最低 ie9 上工作
【问题讨论】:
-
你的 jsFiddle 坏了
-
只是过渡效果不好,所以看不到幻灯片效果..不知道为什么坏了..目前设置为960,只需展开预览窗口跨度>
-
我想你想要这个效果:api.jquery.com/slidetoggle
-
更新的问题(这个 jsfiddle 确实有效)
-
这是浏览器特有的东西吗?我只是看了看,没有问题(至少在 chrome 上)
标签: javascript jquery html css responsive-design