javascript中全屏滑动效果实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul, ol {
            list-style: none;
        }

        html, body, ul, ul li {
            width: 100%;
            height: 100%;
        }

        ol {
            position: fixed;
            top: 50px;
            left: 50px;
        }

        ol li {
            width: 50px;
            height: 50px;
            border: 1px solid #000;
            text-align: center;
            line-height: 50px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<ol>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ol>
<!--ol>li{$}*5-->
<script>
    var timer = null;
    //var leader = 0;
    //找人
    var ol = document.getElementsByTagName("ol")[0];
    var olLis = ol.children;
    var ul = document.getElementsByTagName("ul")[0];
    var ulLis = ul.children;

    var arr = ["red", "orange", "yellow", "green", "blue"];
    for (var i = 0; i < arr.length; i++) {
        olLis[i].style.backgroundColor = arr[i];
        ulLis[i].style.backgroundColor = arr[i];
    }

    /*window.onscroll = function () {
        leader = window.pageYOffset;//当前页面被卷去的头部
    };*/

    //给所有的olLis注册点击事件
    for (var j = 0; j < olLis.length; j++) {
        olLis[j].index = j;
        olLis[j].onclick = function () {
            //让窗体滚动到指定位置
            //就是要滚动到 要去的ul 的 offsetTop的值
            //当前点击的是ol中的哪个li 就去到ul中的那个li
            var target = ulLis[this.index].offsetTop;
            //window.scrollTo(0, target);
            //之前封装的缓动框架只能设置属性 而我们这里要的是一个渐渐变化的值
            clearInterval(timer);
            timer = setInterval(function () {
                //step = (target - leader) / 10
                //leader = leader + step
                var leader = window.pageYOffset;//当前页面被卷去的头部
                var step = (target - leader) / 10;
                step = step > 0 ? Math.ceil(step) : Math.floor(step);
                leader = leader + step;
                //console.log(leader);
                window.scrollTo(0, leader);
                if (leader === target) {
                    clearInterval(timer);
                }
            }, 20);
        };
    }
</script>
</body>
</html>
时间: 2024-08-01 08:30:28

javascript中全屏滑动效果实现的相关文章

iOS开发——实用技术OC篇&amp;8行代码教你搞定导航控制器全屏滑动返回效果

8行代码教你搞定导航控制器全屏滑动返回效果 前言 此次文章,讲述的是导航控制器全屏滑动返回效果,而且代码量非常少,10行内搞定. 效果如图: 如果喜欢我的文章,可以关注我,也可以来小码哥,了解下我们的iOS培训课程.陆续还会有更新ing.... 一.自定义导航控制器 目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器. 二.分析导航控制器侧滑功能 效果:导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能. 系统自带的侧滑效果: 分析: 1.导航控制器的view

8行代码教你搞定导航控制器全屏滑动返回效果

http://www.cocoachina.com/ios/20150811/12897.html 作者:@吖了个峥授权本站转载 前言 此次文章,讲述的是导航控制器全屏滑动返回效果,而且代码量非常少,10行内搞定. 效果如图: 如果喜欢我的文章,可以关注我,也可以来小码哥,了解下我们的iOS培训课程.陆续还会有更新ing.... 一.自定义导航控制器 目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器. 二.分析导航控制器侧滑功能 效果:导航控制器默认自带了侧滑功能,当用户在界面的左

ios 8行代码教你搞定导航控制器全屏滑动返回效果

一.自定义导航控制器 目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器. 二.分析导航控制器侧滑功能 效果:导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能. 系统自带的侧滑效果: 分析: 1.导航控制器的view自带了滑动手势,只不过手势的触发范围只能在左边. 2.当用户在界面左边拖动,就会触发滑动手势方法,并且有滑动返回功能,说明系统手势触发的方法已经实现了滑动返回功能. 3.为什么说系统手势触发的方法已经实现了滑动返回功能? 原因: 创建滑动手势对象

iOSUI-导航控制器全屏滑动返回效果

导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能.但是如何实现全屏滑动返回效果? 分析: 第一步分析: 1.导航控制器的view自带了滑动手势,只不过手势的触发范围只能在左边. 2.当用户在界面左边拖动,就会触发滑动手势方法,并且有滑动返回功能,说明系统手势触发的方法已经实现了滑动返回功能. 3.为什么说系统手势触发的方法已经实现了滑动返回功能? 原因: 创建滑动手势对象的时候,需要绑定监听者,当触发手势的时候会调用target的action. UIPanGesture

手机端实现fullPage——全屏滚动效果

封装了一个小插件模拟fullPage的全屏滚动效果,比较简单. 特点: 1.  纯js实现,小巧轻便. 2.  兼容性好.苹果.安卓都没问题,暂时没遇到问题机型. 缺点: 1.  仅封装了基础功能,HTML.css么有去封装.个人觉得不封装更方便大家使用. 接下来看看效果图: 相比效果大家都看到了,接下来看看代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&

可以防止滚动条影响的全屏遮罩效果

可以防止滚动条影响的全屏遮罩效果:遮罩效果当前在很多应用中都有使用,当然也比较简单,无非是在需要的时候出现一个具有透明效果的全屏元素,但是有一种情况需要特别注意一下,那就是页面出现滚动条的时候,这个时候如不进行一下处理,遮罩层效果的表现可能不伦不类.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" cont

全屏滚动效果H5FullscreenPage.js

前提: 介于现在很多活动都使用了 类似全屏滚动效果 尤其在微信里面 我自己开发了一个快速构建 此类项目的控件 与市面上大部分控件不同的是此控件还支持元素的动画效果 并提供多种元素效果 基于zepto.js 功能清单: 1 快速实现页面全屏滚动效果.并提供多种翻页效果,兼容大部分ios和android系统. 2 支持在页面中添加多种动画元素效果 来实现淡入,滑入等效果. 3 支持配置音乐功能. 4 支持摇一摇接口功能. 组件核心代码原理: 1 页面滚动 在移动页面上如果想使用滚动,如过没有任何动画

一个丝滑的全屏滑动返回手势

一个丝滑的全屏滑动返回手势 全屏返回手势 自 iOS7 之后,Apple 增加了屏幕边缘右划返回交互的支持,再配合上 UINavigationController 的交互式动画,pop 到上一级页面的操作变的非常顺畅和丝滑,从此,我很少再使用点击左上角导航栏上的返回按钮的方式返回了,因为这对单手操作十分不友好:如果一个 App 居然胆敢不支持滑动返回,那离被卸载就不远了. 说到全屏返回手势,首先我感觉这件事本身可能就有问题,毕竟有点反苹果官方的交互,让用户从任意的地方都能够滑 动返回这个交互在国

Android 高大上的侧滑菜单DrawerLayout,解决了不能全屏滑动的问题

DrawerLayout预览 DrawerLayout主要功能就是 实现侧滑菜单效果的功能,并且可以通过增加一些设置来实现高大上的效果,那么就请看动态图: 注意左上角那个图标,有木有很好玩,哈哈... 接下来就介绍如何实现这一功能 1. 在项目对应的build.gradle中添加依赖 dependencies { ...//其他代码 compile 'com.android.support:appcompat-v7:24.0.0' compile 'com.android.support:des