<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;}
html,body{width: 100%;height: 100%;}
ul,ol{list-style: none;}
ul{width: 100%;height: 100%;}
ul li{width: 100%;height: 100%;}
ol{position: fixed;top: 100px;left: 100px;}
ol li{
width: 50px;
height: 50px;
border: 1px solid #000;
margin-top: -1px;
text-align: center;
font: 400 22px/50px "simsun";
cursor: pointer;
}
</style>
</head>
<body>
<ul id="ul">
<li>男装区</li>
<li>女装区</li>
<li>童装区</li>
<li>孕装区</li>
<li>老年装区</li>
</ul>
<ol id="ol">
<li>男装</li>
<li>女装</li>
<li>童装</li>
<li>孕装</li>
<li>老年</li>
</ol>
</body>
</html>
<script>
//需求:给所有盒子添加颜色,点击ol的li,页面跳转到ul中相应的li
//步骤:
//1、利用数组给所有盒子添加颜色
//2、缓动框架移动最顶端
//3、移动到指定位置(给ol中的li绑定索引值,获取对应的ul中的li距离顶端的距离,赋值给target,好让页面跳转
//4、屏幕滑动,记录屏幕的位置 var ul = document.getElementById("ul");
var ol = document.getElementById("ol");
var ulLis = ul.children;
var olLis = ol.children;
var arr = ["pink","yellow","green","purple","orange"]; var timer = null,target = 0,leader = 0; window.onscroll = function () {
//屏幕滑动,给屏幕目前所在的位置赋值。
leader = scroll().top;
} for(var i=0;i<olLis.length;i++){
//为每一个盒子上色,ul和ol中的li对应颜色
ulLis[i].style.backgroundColor = arr[i];
olLis[i].style.backgroundColor = arr[i]; olLis[i].index = i;
olLis[i].onclick = function(){
//给目标位置赋值(小盒子对应的大盒子距离顶部的距离)
target = ulLis[this.index].offsetTop;
clearInterval(timer);
timer = setInterval(function(){
var step = (target-leader)/10;
step = step>0?Math.ceil(step):Math.floor(step);
leader = leader+step;
window.scrollTo(0,leader);
if(target == leader){
clearInterval(timer);
}
},30)
}
}
</script>

最新文章

  1. 新蒂下午茶体基本版SentyTEA-Basic
  2. C#中的委托与事件
  3. iphone开发中数据持久化之——嵌入式SQLite(三)
  4. Linux学习之十三、快捷键与通配符、数据流重导向
  5. 基于Proxy思想的Android插件框架
  6. 答读者问(5):关于数学程序猿的作用、r \\ u0026研发工作的实践要求和问题,如求职的影响
  7. 关于ul和dl的区别
  8. seq语句随笔
  9. python文件操作及os模块常用命令
  10. 从事三年java开发后, 我打算转人工智能
  11. 洛谷 P2149 [SDOI2009]Elaxia的路线 解题报告
  12. phoenix客户端连接hbase数据库报错:Traceback (most recent call last): File &quot;bin/sqlline.py&quot;, line 27, in &lt;module&gt; import argparse ImportError: No module named argparse
  13. Apache Thrift - 可伸缩的跨语言服务开发框架 ---转载
  14. cluster DNS
  15. GIT修改邮箱
  16. python学习笔记(五):装饰器、生成器、内置函数、json
  17. 【LeetCode-面试算法经典-Java实现】【075-Sort Colors (颜色排序)】
  18. JNI_Z_03_类中的字段和方法的签名
  19. 21.1 XMLHttpRequest 对象【JavaScript高级程序设计第三版】
  20. 迁移TFS 2012服务至新的电脑硬件

热门文章

  1. 【自己D自己】WC2019总结
  2. nodeJS学习(4)--- webstorm/...开发 NodeJS 项目-节1
  3. 模仿原生淘宝app点击搜索时的页面滑动效果
  4. linux下终端录制
  5. hdu 1215(因子和)
  6. angularjs 1 如何在ng-route的模板中使用script标签
  7. extern &quot;C&quot;解析
  8. (4)python tkinter-布局
  9. Topcoder SRM 663 DIV 1
  10. Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)