js实现楼层效果的简单实例


Posted in Javascript onJuly 15, 2016

今天自己写个楼层效果,有一点烦躁,小地方犯错误。各位大神来修改不足啊!!!

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>楼层切换</title>
<style>
*{padding: 0;margin: 0;}
li{list-style: none;}
.main img{width: 850px;height: 700px;float: left;}
.title{width: 850px;height: 50px;text-align: center;line-height: 50px;}
.floor{position: fixed;top: 20px;right: 20px;display: none;}
.floor ul li{width: 70px;height: 30px;text-align: center;line-height: 30px;cursor: hand;cursor: pointer}
.liStyle{background-color: red;}
.loading{background:url("image/loading.gif") no-repeat center center;}
#back{cursor: hand;cursor: pointer;}
</style>
</head>
<body>
<div class="main" id="main">
<h3 class="title">图片欣赏</h3>
<img as="image/1.jpg"/>
<img as="image/2.jpg"/>
<img as="image/3.jpg"/>
<img as="image/4.jpg"/>
<img as="image/5.jpg"/>
<img as="image/6.jpg"/>
<img as="image/7.gif"/>
<img as="image/8.jpg"/>
<img as="image/9.jpg"/>
<img as="image/10.jpg"/>
</div>
<div class="floor" id="floor">
<ul id="floorUl">
<li>第一张</li>
<li>第二张</li>
<li>第三张</li>
<li>第四张</li>
<li>第五张</li>
<li>第六张</li>
<li>第七张</li>
<li>第八张</li>
<li>第九张</li>
<li>第十张</li>
</ul>
<p id="back">返回顶部</p></div><script> var main = document.getElementById("main"); 
var floor = document.getElementById("floor"); 
var image = main.getElementsByTagName("img"); 
var floorUl = document.getElementById("floorUl"); 
var li = floorUl.getElementsByTagName("li"); 
var back = document.getElementById("back"); 
window.onload = window.onscroll = function(){ 
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 
var height = document.documentElement.clientHeight || document.body.clientHeight; 
for(var i = 0;i < image.length; i++){ 
image[i].className = "loading"; 
if(delay(image[i]).top < scrollTop + height){ 
image[i].src = image[i].getAttribute("as"); 
} 
} 
if(scrollTop >= image[0].offsetTop){ 
floor.style.display = "block"; 
}else { 
floor.style.display = "none"; 
} 
var num = 0; 
for(var i = 0; i < image.length;i++){ 
if(scrollTop >= image[i].offsetTop){ 
num = i; 
} 
li[i].className = ""; 
} 
li[num].className = "liStyle"; 
for(var i = 0;i < li.length;i++){ 
li[i].onclick = function(){ 
for(var j = 0;j < li.length;j++){ 
if(this == li[j]){ 
document.documentElement.scrollTop = image[j].offsetTop; 
document.body.scrollTop = image[j].offsetTop; 
} 
} 
} 
} 
} 
var time = null; 
back.onclick = function() {
function goBack(){ 
var ss = document.documentElement.scrollTop || document.body.scrollTop; 
ss-=50; 
document.documentElement.scrollTop = ss; 
document.body.scrollTop = ss; 
if(ss<= 0){ 
clearInterval(time); 
} 
} 
time = setInterval(goBack,1); 
} 
function delay(obj){ 
var l = 0; 
var t = 0; 
while (obj){ 
l = l + obj.offsetLeft; 
t = t + obj.offsetTop; 
obj = obj.offsetParent; 
} 
return{left:l,top:t}; 
}
</script>
</body>
</html>

以上这篇js实现楼层效果的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery实现图片预加载与延时加载的方法
Dec 22 Javascript
jquery实现弹出层效果实例
May 19 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
Oct 12 Javascript
原生js实现class的添加和删除简单代码
Jul 12 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
JS实现DIV高度自适应窗口示例
Feb 16 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
Node.js的进程管理的深入理解
Jan 09 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
深入理解react 组件类型及使用场景
Mar 07 Javascript
基于JavaScript实现轮播图代码
Jul 14 #Javascript
js轮播图代码分享
Jul 14 #Javascript
jQuery中deferred对象使用方法详解
Jul 14 #Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
Jul 14 #Javascript
基于jQuery的ajax方法封装
Jul 14 #Javascript
由浅入深剖析Angular表单验证
Jul 14 #Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 #Javascript
You might like
PHP垃圾回收机制简单说明
2010/07/22 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
基于jquery封装的一个js分页
2011/11/15 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
setTimeout()与setInterval()方法区别介绍
2013/12/24 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
JSONP基础知识详解
2017/03/19 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
应届生骨科医生求职信
2013/10/31 职场文书
旷课检讨书3000字
2014/02/04 职场文书
德语专业求职信
2014/03/12 职场文书
初中同学会活动方案
2014/08/22 职场文书
争先创优心得体会
2014/09/12 职场文书
2015年试用期工作总结
2014/12/12 职场文书
重阳节慰问信
2015/02/15 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
如何撰写促销方案?
2019/07/05 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python