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 相关文章推荐
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
jQuery短信验证倒计时功能实现方法详解
May 25 Javascript
JS弹性运动实现方法分析
Dec 15 Javascript
js前端导出Excel的方法
Nov 01 Javascript
对node.js中render和send的用法详解
May 14 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 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
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
js使用递归解析xml
2014/12/12 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
Linux的主要特性
2016/09/03 面试题
应聘教师推荐信
2013/10/31 职场文书
邀请函模板
2015/02/02 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
安全责任协议书范本
2016/03/23 职场文书
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js