gpt4 book ai didi

javascript - 响应式横向页面滑动

转载 作者:技术小花猫 更新时间:2023-10-29 12:20:15 26 4
gpt4 key购买 nike

我想创建水平响应式页面导航,如下图所示: horizontal responsive page navigation transition

这是我设法做到的: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>

然而,我遇到了一些问题,因为我的响应在一定程度上是敏感的,就像你缩放它需要坚持在页面上而不是显示其他页面一样。

此外,如果页面很长,它会显示一个完美的滚动条,但在最后一张幻灯片上有一个与滚动条一样宽的间隙。

我有以下要求:

  1. 需要有反应
  2. 页面需要能够很长(800 像素)并且仍然可以滚动,并且最后一个页面没有间隙。
  3. 需要在 ie9 上工作

最佳答案

水平页面滑动

带左边距动画

这个 jQuery 片段:

  1. 计算幻灯片的数量并相应地设置包装器的宽度。
  2. 根据点击哪个链接,left-margin 在 wrapper 上进行动画处理以平滑过渡显示相应的幻灯片
  3. 切换点击链接的类别以突出显示事件链接

注意这个解决方案:

  1. 只使用一个菜单出现来最小化标记并防止内容重复。
  2. 只需要 jQuery 库
  3. 适用于动态数量的幻灯片

$(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.1/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>

关于javascript - 响应式横向页面滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com