Day13(scroll 家族,JSON,demo固定菜单栏,点击缓动)

Offset ‘自己的’的意思

1、offsetWidth 自己的宽度 offsetHeight 自己的高度;

width+padding+border;
div width=200px;border=3px;padding-right=15px;
div offsetWidth=200+6+15=221;
offsetWidth和div.style.width的区别
div.style.width获取到的是字符串,并且可以进行修改

2、offsetWidth获取到的是数值类型,只能获取,不能修改;

offsetLeft 获取div距离最近的带有定位的父级,相当于是左边距;

3、offsetParent 返回自己的父亲元素(带有定位的);

如果所有父级都没有定位,则返回body
和parentnNode区别,parentNode返回父亲,不管是否带有定位;

4、event事件

div.onclick=function(event){},这个envent就是它点击的时候,浏览器所执行的所有事件;
pageX、pageY 距离文档的X轴距离
clientXc、clientY 距离浏览器可见区域的X轴距离;
screenX、screenY 距离屏幕。超出了浏览器;

Scroll 家族

Offset家族 自己的
Scroll 滚动家族
scrollTop 被卷去的头部
它就是当你滑轮滚动浏览网页隐藏在屏幕上方的距离
页面滚动事件:

Window.onscroll=function(){执行语句};

谷歌浏览器,以及:没有声明DTD(<!DOCTYPE html>)的浏览器(怪异模式):

document.body.scrollTop;//仅限谷歌以及怪异模式浏览器、

火狐以及其他浏览器:

document.documentElement.scrollTop;

iE9以上++++++++++++++++++:

var scrollTop=document.body.scrollTop ||
document.documentElement.scrollTop ||
window.pageYOffset;   //兼容性写法

JSON ***********************************************

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,我们称之为javascript对象表示法,使用json进行传输数据是很常用的
Json就是javascript
Json其实很像我们学过的CSS条
var myjson={k:v,k:v,k:v…..} json用键值对的方法表示 key:value

封装自己的scroll;

scrollTo(x,y)

使当前页面跳转到(x,y)这个坐标
window.scrollTo(0,500);
格式:window.scroll(Xpos,Ypos);
两个值一个都不能省略,不想跳给个0都行,就是不能少
Xpos 必须,想要跳转的X轴的位置
Ypos 必须,想要跳转的Y轴的位置
Xpos一般用不上,给个0就行,因为一般大部分网页水平滚动条是不让出现的

demo 固定缓动菜单栏

<style>
        *{
            margin: 0;
            padding: 0;
        }
        img{
            position: absolute;
            left: 0;
            top: 100px;
        }
        .cur{
            height: 3000px;
        }

    </style>

![](images/aside.jpg)
<div class="cur"></div>
<script src="JavaScript/base.js"></script>
<script>
    var img = document.getElementById("img");
    var timer = null;
    var leader = 0, target = 0;
    window.onscroll = function(){
        clearInterval(timer);
        target = scroll().top + 100;
        timer = setInterval(function(){
            leader = leader + (target - leader) /10;
            img.style.top = leader + "px";
        },50)
    }
</script>

demo 点击缓动规定位置

<style>
        *{
            margin: 0;
            padding: 0;
        }
        html,body{
            width: 100%;
            height: 100%;
        }
        .box{
            position: fixed;
            top: 0;
            left: 100px;
        }
        .box div{
            width: 50px;
            height: 50px;
            border: 1px solid yellow;
            cursor: pointer;
        }
        .box .tp{
           border-top: none;
        }
        .one,.b1{
            background: pink;
        }
        .two,.b2{
            background: cornflowerblue;
        }
        .three,.b3{
            background: cyan;
        }
        .four,.b4{
            background: cornsilk;
        }
        .five,.b5{
            background: orchid;
        }
        .cur{
            width: 100%;
            height: 100%;
        }
        .cur div{
            font-size: 30px;
            width: 100%;
            height: 100%;
        }

    </style>
<div class="box" id="box">
    <div class="one" >首页</div>
    <div class="two tp" >商城</div>
    <div class="three tp" >关于</div>
    <div class="four tp" >我的</div>
    <div class="five tp">收藏</div>
</div>
<div class="cur" id="cur">
    <div class="a b1">首页</div>
    <div class="a b2">商城</div>
    <div class="a b3">关于</div>
    <div class="a b4">我的</div>
    <div class="a b5">收藏</div>
</div>
<script>

    function $(id){    // 获取 id
           return document.getElementById(id);
     }
    var box = document.getElementById("box");
    var cur = document.getElementById("cur");
    var divs = box.getElementsByTagName("div");
    var divs2 = cur.getElementsByTagName("div");
    var timer = null;
    var leader = 0,target = 0;

    for(var i = 0;i<divs.length;i++){
        divs[i].index = i;  //通过创建index属性,赋予每一个 divs 一个索引号
        divs[i].onclick = function(){
            clearInterval(timer);
            target = divs2[this.index].offsetTop; //通过索引值,获取 divs2 的offsetTop
            timer=setInterval(function(){
                leader=leader+(target-leader)/10;
                window.scrollTo(0,leader);//屏幕滑动
                if(Math.round(leader)==target){//当启始值等于目标值,就表示到达目的了,就清除计时器
                    clearInterval(timer);
                }
            },30);
        }
    }

</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Window和document对象的区别 window对象window对象表示浏览器中打开的窗口window对象是...
    FConfidence阅读 2,155评论 0 5
  • offset家族三大家族和一个事件对象三大家族(offset/scroll/client)事件对象/event ...
    Yuann阅读 946评论 0 5
  • 本文是针对刚学编程的小白,都是一些基础知识,如果想了解更多深层一点的东西,欢迎移步本人博客!! 博客地址 点击跳转...
    西巴撸阅读 555评论 0 2
  • 一、自定义动画 animation: flash 0.5s alternate infinite; @keyfra...
    一叶一生一叶知秋阅读 323评论 0 0
  • 什么是同源策略 浏览器出于安全考虑,只允许与本域的接口交互访问,不同源的客户端脚本在没有明确授权的情况下, 不能读...
    怎么昵称阅读 256评论 0 0