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 相关文章推荐
Javascript 赋值机制详解
Nov 23 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
String字符串截取的四种方式总结
Nov 28 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
Jul 13 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
vue-i18n实现中英文切换的方法
Jul 06 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python