博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
页面切换代码
阅读量:5830 次
发布时间:2019-06-18

本文共 3377 字,大约阅读时间需要 11 分钟。

<div class="blockcode"><blockquote><!DOCTYPE html>

<html>
<head>
<meta charset="utf-8" />
<title>单页面切换实验</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<style type="text/css">
abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video
{
display: block;
}
*
{
margin: 0px;
padding: 0px;
}
html
{
overflow-y:hidden;
}
section
{
width:100%;
}
.page1,.page3
{
background: yellow;
}
.page2,.page4
{
background: orange;
color: white;

}

.active
{
color: red;
}
</style>
<!--[if it IE 9]>
<script>
(function() {
if (!
/*@cc_on!@*/
0) return;
var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
for(var i=0;i<e.length;i++)
{
document.createElement(e[i]);
}
})()
</script>
<![endif]-->
<script src="./jquery.js"></script>>
<script type="text/javascript">
function onepagescroll (obj) {
var num;
var detail;
var scrollTop = $('html,body').scrollTop();
var activeCss = "."+obj.activeCss;
var li;
//添加选项元素
$(obj.sectionContain).wrapAll("<div class='wrap'></div>");

$(".wrap").css("position","relative");

$(".wrap").append("<ul class='item'></ul>");
$(".item").css("position","fixed").css("right","30px").css("top","40%").css("background","white");
for (var i = 0; i<$(obj.sectionContain).length; i++) {
$(".item").append("<li>"+(i+1)+"</li>");
}
//初始化选项
$(".item li:first").addClass(obj.activeCss);
//获取当期选项的index
li = $(".item li");
//调整窗口触发事件
$(window).resize(function(){
$(obj.sectionContain).css("height",document.documentElement.clientHeight+'px');//重新获取可视高度 病重新设置section高度
$('html,body').animate({scrollTop:document.documentElement.clientHeight*$(activeCss).index()},0);//保证当前section的左上角和浏览器可视高度的左上角对齐

});

$(obj.sectionContain).css("height",document.documentElement.clientHeight+'px');//获取浏览器可视区域高度并设置section的高度
li.each(function(index){
$(this).click(function(){
if($(activeCss).index()==index){
//如果点击li的index的section的当前元素,那么直接返回
return;
}
$(this).siblings().removeClass(obj.activeCss);//全部移除css
$(this).addClass(obj.activeCss);//当前li添加active
$('html,body').stop().animate({scrollTop:$(obj.sectionContain).eq(index).offset().top},1000);//整体页面滚动到目标section位置
var scrollFunc = function(e){
e=e || window.event;
num = $(activeCss).index();
detail = e.wheelDelta? e.wheelDelta:(-e.detail);
if(detail>0){
if($('.active').index()==0){
return ;
}else{
li.removeClass(obj.activeCss);
li.eq(num-1).addClass(obj.activeCss);
$('html,body').stop().animate({scrollTop:$(obj.sectionContain).eq(num-1).offset().top},1000);
}
}else if(detail<0){
if($('.active').index()==3){
return;
}else{
li.removeClass(obj.activeCss);
li.eq(num+1).addClass(obj.activeCss);
$('html,body').stop().animate({scrollTop:$(obj.sectionContain).eq(num+1).offset().top},1000);
}
}
}
if(document.addEventListener){
document.addEventListener('DOMMouseScroll',scrollFunc,false);
}
document.onmousewheel = scrollFunc;
});

});

}
$(function(){
onepagescroll({
sectionContain:'section',
activeCss:'active'
});
})
</script>
<body>
<section class="page1">page1</section>
<section class="page2">page2</section>
<section class="page3">page3</section>
<section class="page4">page4</section>
</body>
</html>

转载于:https://www.cnblogs.com/zlx7/p/4923946.html

你可能感兴趣的文章
文件权限
查看>>
busybox里的僵尸进程为何那么多
查看>>
python debug
查看>>
java 连接数据库之一个完整的函数
查看>>
mysql脚本
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
Dubbo点滴(2)之集群容错
查看>>
检测不到兼容的键盘驱动程序
查看>>
listbox用法
查看>>
冲刺第九天 1.10 THU
查看>>
传值方式:ajax技术和普通传值方式
查看>>
Linux-网络连接-(VMware与CentOS)
查看>>
寻找链表相交节点
查看>>
AS3——禁止swf缩放
查看>>
linq 学习笔记之 Linq基本子句
查看>>
[Js]布局转换
查看>>
Hot Bath
查看>>
国内常用NTP服务器地址及
查看>>
Java annotation 自定义注释@interface的用法
查看>>
Apache Spark 章节1
查看>>