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 相关文章推荐
简单的JS多重继承示例
Mar 13 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
Iframe 自动适应页面的高度示例代码
Feb 26 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
vue生命周期的探索
Apr 03 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 Javascript
node.js实现上传文件功能
Jul 15 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
基于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自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
Document对象内容集合(比较全)
2010/09/06 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python判断变量是否为列表的方法
2020/09/17 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
请介绍一下Ant
2016/07/22 面试题
优纳科技软件测试面试题
2012/05/15 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
学习心得体会
2014/01/01 职场文书
一年级小学生评语
2014/04/22 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技
Python日志模块logging用法
2022/06/05 Python