美文网首页
day09-js效果

day09-js效果

作者: 我是一只菜鳥 | 来源:发表于2018-08-23 17:29 被阅读0次

    1.offset属性

    // 获取可视区的宽度和高度
    // 获取宽高的时候,要看有没有DTD的说明,如果有,使用documentElement,如果没有,使用body
    var clientWidth = document.documentElement.clientWidth
    var clientHeight = document.documentElement.clientHeight

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>offset属性</title>
            
            <style type="text/css">
                div{
                    width: 30%;
                    height: 300px;
                    background-color: cyan;
                    position: absolute;
                    top: 20%;
                    left: 200px;
                }
            </style>
        
        </head>
        <body>
            <div id="dudu"></div>
        </body>
    </html>
    <script type="text/javascript">
        var odiv = document.getElementById('dudu');
        // 可以直接获取div的宽高,而且不带px,无论样式如何都可以获取到,
        // 并且是只读属性
        console.log(odiv.offsetWidth, odiv.offsetHeight);
        
        // 可以直接获取div的离上面和左边的距离,而且不带px,无论样式如何都可以获取到,
        // 并且是只读属性
        console.log(odiv.offsetTop, odiv.offsetLeft);
        
        
    </script>
    

    2.吸顶条

    // 可以直接获取到div的宽度和高度,而且是不带px, 并且样式无论在哪都可以获取到,这两个属性是只读属性
    offsetWidth
    offsetHeight
    // 可以直接获取到div的距离浏览器上边的距离和距离浏览器左边的距离,而且是不带px, 并且样式无论在哪都可以获取到,这两个属性是只读属性
    offsetTop
    offsetLeft

    <script type="text/javascript">
        window.onload = function (){
            var odiv = document.getElementById('lala');
            var odudu = document.getElementById('dudu');
            var ooffsettop = odiv.offsetTop;
            window.onscroll = function (){
                var oscrolltop = document.documentElement.scrollTop;
                
                if (oscrolltop >= ooffsettop){
                    odiv.style.position = "fixed";
                    odiv.style.top = "0px";
                
                    // 将提前准备好的div放出来
                    odudu.style.display = 'block';
                
                } else{
                    odiv.style.position = null;
                    odudu.style.display = 'none';
                }
                
                //console.log(odiv.offsetTop, document.documentElement.scrollTop);
            }
            
        }
        
        
    </script>
    

    3.自动播放选项卡

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>自动播放选项卡</title>
        <style>
            .box {
                width: 1000px;
                border: 1px solid gray;
                margin: 0 auto;
            }
            button {
                width: 170px;
                height: 100px;
                font-size: 20px;
                background-color: pink;
                margin-left: 55px;
                display: inline-block;
            }
            .box > div {
                width: 970px;
                height: 600px;
                font-size: 50px;
                background-color: yellow;
                margin-left: 15px;
                margin-top: 50px;
                display: none;
            }
            .box > .active {
                font-size: 30px;
                background-color: blue;
            }
            .box > .show {
                display: block;
            }
            </style>
    </head>
    <body>
        <div class="box">
            <button class="active">国产电影</button>
            <button>韩日电影</button>
            <button>欧美电影</button>
            <button>其他电影</button>
            <div class="show">霸王别姬、卧虎藏龙、大话西游、东邪西毒、无间道、功夫</div>
            <div>釜山行、汉江怪物、奥特曼、灌篮高手、热血高校、午夜凶铃</div>
            <div>肖申克的救赎、阿甘正传、敢死队、泰坦尼克号、这个杀手不太冷、盗梦空间</div>
            <div>三傻大闹宝莱坞、摔跤吧、小萝莉的猴神大叔、厕所英雄</div>
        </div>
    </body>
    </html>
    <script>
    // 首先找到最外层的box
    var obox = document.getElementsByClassName('box')[0]
    // 找到所有的button
    var abtns = obox.getElementsByTagName('button')
    // 找到所有的div
    var adivs = obox.getElementsByTagName('div')
    
    // 记录要切换的div获取按钮的下标
    var number = 0
    
    // 循环给每一个button添加点击事件
    for (var i = 0; i < abtns.length; i++) {
        abtns[i].index = i
        abtns[i].onclick = function () {
            // 首先清空所有的class
            for (var j = 0; j < abtns.length; j++) {
                abtns[j].className = ''
                adivs[j].className = ''
            }
            // 然后给指定的添加class
            this.className = 'active'
            adivs[this.index].className = 'show'
            // 将number更新一下
            number = this.index
        }
    }
    
    
    
    // 自动播放代码
    function next() {
        // 显示下一个需要显示的button和div
        number++
        number %= 4
        // 先清掉所有的样式
        for (var j = 0; j < abtns.length; j++) {
            abtns[j].className = ''
            adivs[j].className = ''
        }
        abtns[number].className = 'active'
        adivs[number].className = 'show'
    }
    var timer = setInterval(next, 1000)
    
    // 如果鼠标放到box上面,将定时器销毁,鼠标离开box的时候,重新创建定时器自动播放
    obox.onmouseover = function () {
        clearInterval(timer)
    }
    obox.onmouseout = function () {
        timer = setInterval(next, 1000)
    }
    </script>
    

    4.jquery

    jquery是什么?
    jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
    jQuery是一个快速、小型、功能丰富的JavaScript库。它使HTML文档遍历和操作、事件处理、动画和Ajax等工作变得更加简单,并且具有在多个浏览器之间工作的易于使用的API。结合了通用性和可扩展性,jQuery改变了数百万人编写JavaScript的方式。
    版本要求:看版本.txt
    压缩和非压缩
    .min.js : 压缩版本,一行代码,没有了空格、缩进等
    .js : 非压缩版本,正常的代码查看
    使用方式
    可以本地使用
    <script src="jquery/jquery-1.11.3.min.js"></script>
    可以引入网络文件使用
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    选择器
    jquery通过选择器就可以找到指定的节点
    id、class、标签、层级
    基本
    :first 第一个
    :last 最后一个
    :even 偶数下标
    :odd 奇数下标
    :eq() 等于哪个下标
    :gt() 大于哪个下标
    :lt() 小于哪个下标

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>jquery</title>
            
            <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js" type="text/javascript">
                
            </script>
            
        </head>
        <body>
            <div id="lala">周杰伦</div>
            <div class="star">王力宏</div>
            <div class="star">林俊杰</div>
            <div class="song">
                <div class="wang">
                    <ul>
                        <li>王宝强</li>
                        <li>王者荣耀</li>
                        <li>王宝强</li>
                    </ul>
                </div>
                
                <div class="ma">
                    <ul>
                        <li>马云</li>
                        <li>马容</li>
                        <li>马化腾</li>
                    </ul>
                </div>
            </div>
            
            
        </body>
    </html>
    <script type="text/javascript">
        $(function(){
            
            /*// jquery代码都写到这里
            //id选择器
            $('#lala').css('background-color', 'red');
            
            //class选择器
            $('.star').css('background-color', 'yellow');
            
            //标签选择器
            $('li').css('background-color', 'cyan');
            
            // 层级选择器
            $('.song li').css('background-color', 'blue');
            // 父子选择器
            $('.song > .wang').css('background-color', 'black');
            */
            
            // 第一个
            //$('li:first').css('background-color', 'cyan');
            // 最后一个
            //$('li:last').css('background-color', 'cyan');
            // 下标奇数
            //$('li:even').css('background-color', 'cyan');
            // 下标偶数
            //$('li:odd').css('background-color', 'cyan');
            // 等于1的
            //$('li:eq(1)').css('background-color', 'cyan');
            // 大于2的
            //$('li:gt(2)').css('background-color', 'cyan');
            // 小于2的
            //$('li:lt(2)').css('background-color', 'cyan');
            
            
        })
    </script>
    

    相关文章

      网友评论

          本文标题:day09-js效果

          本文链接:https://www.haomeiwen.com/subject/ynjmiftx.html