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 相关文章推荐
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
Mar 31 Javascript
js+css实现回到顶部按钮(back to top)
Mar 02 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
vue一步步实现alert功能
Jul 05 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
three.js 如何制作魔方
Jul 31 Javascript
js 数组 fill() 填充方法
Nov 02 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
Yii分页用法实例详解
2014/12/04 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
Javascript模板技术
2007/04/27 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
vue element实现表格合并行数据
2020/11/30 Vue.js
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python实现简单字典树的方法
2016/04/29 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
python判断无向图环是否存在的示例
2019/11/22 Python
Python实现一个优先级队列的方法
2020/07/31 Python
Python random模块的使用示例
2020/10/10 Python
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
关于读书的演讲稿400字
2014/08/27 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
解除合同协议书范本
2016/03/21 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis