day17--16\17章节 对jquery高度及位置操作scrolltop、offset与jquery使用delegate绑定事件

1、对jquery高度及位置操作

$(window).scrollTop()  获取位置
$(window).scrollTop(0) 设置位置
     <div id="i1"></div>
        <div style="width: 200px;height: 200px;overflow: auto;">        <!-- overflow对div标签中的内容设置滚动条 -->
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
        </div>
        <div id="i2"></div>
        <div style="height: 1000px;"></div>      <!-- 设置的高度大于当前页面的高度时,页面出现滚动条 -->
        <script src="jquery-1.12.4.js"></script>

在控制台中测试对scrolltop的应用:

$(window).scrolltop(),获取当前页面中滚动条的值;$(window).scrolltop(100),设置当前页面中滚动条的值;

$(‘div’).scrolltop(),获取当前div标签中滚动条的值;$(‘div’).scrolltop(100),设置当前div标签中滚动条的值;

2、offset获取坐标

offset().left:指定标签在html中的左坐标;offset().top:指定标签在html中的上坐标;

以1中的代码为例演示,添加i1与i2标签:如i1所示,默认是有8px的距离,设置margin为0,可以使边框为0

3、jquery使用delegate绑定事件

        <input id="t1" type="text"/>
        <input id="a1" type="button" value="添加" />
        
        <ul id="u1">
            <li>1</li>
            <li>2</li>
        </ul>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('#a1').click(function(){
                var v=$('#t1').val();
                var temp="<li>"+v+"</li>";
                $('#u1').append(temp);
            });
     </script>

现在这个代码可以实现的是,在输入框中输入值,点击添加按钮,可以添加在列表中;

现在要增加一个功能,点击每行列表时,可以将值通过弹窗的方式显示出来,可以通过以下三种方式的代码来实现:

       $('ul li').click(function () {
                var v = $(this).text();
                alert(v);
            })
            
            $('ul li').bind('click',function(){
                var v=$(this).text();
                alert(v);
            });
            
            $('ul li').on('click',function(){
                var v=$(this).text();
                alert(v);
            });

这三种方式点击页面现有的列表时,会弹出相应的弹窗;但是点击新增的列表时,没有出现;通过以下delegate来实现:

            $('ul').delegate('li','click',function(){
                var v=$(this).text();
                alert(v);
            });

 

posted @ 2020-04-23 19:58  凸凸yolotheway  阅读(150)  评论(0编辑  收藏  举报