2018年8月

QQ截图20180825190050.png

效果图在上面
小demo的坑:

图一共是5张,但是如果用计时器往左偏移的话,偏移到一定程度的时候,偏移位会归零,归零的瞬间会变图,
突然切换的图片会显得很生硬,所以再图片末尾再加上前2张图片,让滚动更流畅。

用到的主要技巧就是,计时器的技巧,还有就是jq的siblings()获取非当前的这个方法在触摸图层会很重要。

fadeTo方法也是非常重要的,传递2个参数,第一个是时间,第二个就是透明度,透明度我们选择了0.5,然后
ul的背景是黑色的,所以呈现出来的就是类似于黑色蒙版的东西。

源码附带:

<!DOCTYPE html>

<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>
<script src="jquery-3.0.0.js"></script>
<style>
     *{
         margin: 0;
         padding: 0;
     }
     div{
         /* 图片一张是590 */
         width: 1180px;
         height: 470px;
         border: 1px solid black;
         margin: 100px auto;
         overflow: hidden;
     }
     ul{
        /* ul要存放7张图片,所以宽度要乘五 */
         width:4130px;
         height: 470px;
         list-style: none;
         background: black;
     }
     li{
         float: left;
     }
</style>


<!-- 思路 -->
<!-- 准备一个div -->
<div>
    <!-- div作为外面最大的容器 -->
    <!-- 图片放在ul中跟随移动 -->
    <ul>
        <li><img src="1.jpg" alt=""></li>
        <li><img src="2.jpg" alt=""></li>
        <li><img src="3.jpg" alt=""></li>
        <li><img src="4.jpg" alt=""></li>
        <li><img src="5.jpg" alt=""></li>
        <li><img src="1.jpg" alt=""></li>
        <li><img src="2.jpg" alt=""></li>
    </ul>
</div>
<script>
    var off=0;
    var timer;
        //jq代码让图片轮播
        $(function(){
            //设置变量获取偏移
            //调用自动播放的方法
            autoplay();
            //监听鼠标
            listen();
        });
        /*将计时器方法单独定义*/
        function autoplay(){
            timer=setInterval(function(){
                //进入定时器让off自减,向左走
                off+=-1;
                //判断,如果经过5张以后循环
                if(off<=-2950){
                    off=0;
                }
                 //获取ul
                 $('ul').css({
                     'marginLeft':off
                 });
            },10);
        }
        function listen(){
            $('li').hover(function(){
                //移入
                //移入之后给非当前选中的添加蒙版
                //移入停止滚动
                clearInterval(timer);
                //fadeto方法,设置动画透明度.ul背景是黑色的,li透明就是黑色朦胧感觉
                $(this).siblings().fadeTo(100,0.5);
                //选中当前要去除自身的蒙版
                $(this).fadeTo(100,1);
            },function(){
                //移出
                //继续滚动,调用方法
                autoplay();
                // 去除所有的蒙版
                $('li').fadeTo(100,1);
            })
        }
</script>


java反射机制运行状态中,对于任何一个类,都可以知道这个类所有属性和方法,对于任何一个对象,都可以调用它的任何一个方法,
这种动态获取信息或者动态调用功能称之为反射机制

获取Class的四种F方法:

例子:

                                                  //获取Class—getClass方法 
                                          test ts=new test();
                                       Class cl=ts.getClass();
                                          System.out.println(cl);
                                              //获取Class—Class.forName方法  
                                                 try {
                                                              Class cl=Class.forName("com.entity.test");
                                                              System.out.println(cl);
                                                    } catch (ClassNotFoundException e) {
                                                              // TODO Auto-generated catch block
                                                           e.printStackTrace();
                                                   }
                                              //获取Class—类名.class方法 
                                                             Class cl=test.class;
                                                             System.out.println(cl);
                                              //获取Class—包装类.type
                                                                        Class cl=Boolean.TYPE;
                                                                        System.out.println(cl);

推荐getclss方法和类名直接.class方法。
1.Filde类,获取成员属性

                                               //1.Filed类获取成员变量
                                              //2.获取Class
                                                        Class cl=test.class;
                                                        Object obj=cl.newInstance();
                                                        //获取指定对象
                                                        Field name=cl.getDeclaredField("name");
                                                        //公有化
                                                        name.setAccessible(true);
                                                        //拿到值
                                                        System.out.println(name.get(obj));

PS:文字说明【首先先拿到Class,然后通过test类中的无参构造函数来获取对象newInstance(),然后用Class获取名为name的属性,然后破坏封装 name.setAccessible(true); 然后通过Field对象从test对象Obj中拿到name name.get(obj)】
2)获取全部属性变量

                                                        //1.Filed类获取成员变量
                                              //2.获取Class
                                                        Class cl=test.class;
                                                        Object obj=cl.newInstance();
                                                        //获取指定对象
                                                        Field fields[]=cl.getDeclaredFields();
                                                        //循环里面的内容
                                                        for (Field field : fields) {
                                                                  System.out.println(field.getName());
                                                        }
1. 

获得Methods全部方法

                                                        //获取Class
                                                        Class cl=test.class;
                                                        Method me[]=cl.getDeclaredMethods();
                                                        for (Method method : me) {
                                                                  System.out.println(method.getName());
                                                        }
2)获得Method某个方法,不带参数
                                                        //获取Class
                                                        Class cl=test.class;
                                                        Object obj=cl.newInstance();
                                                        //调用ccc方法
                                                        Method me=cl.getDeclaredMethod("ccc",new Class[]{});
                                                        Object re=me.invoke(obj, new Object[]{});

3)获得Method某个方法,带参数

                                                        //获取Class
                                                        Class cl=test.class;
                                                        Object obj=cl.newInstance();
                                                        //调用ccc方法
                                                        Method me=cl.getDeclaredMethod("ccc",new Class[]{String.class,int.class});
                                                        Object re=me.invoke(obj, new Object[]{"谢振坤",88});

3.构造方法,获取全部无参构造方法

                                                        //获取Class
                                                        Class cl=test.class;
                                                        Object obj=cl.newInstance();
                                                        //调用构造方法
                                                        Constructor gz[]=cl.getConstructors();
                                                        for (Constructor constructor : gz) {
                                                                  System.out.println(constructor);
                                                        }

1)获取单独的构造方法,无参

                                                      Class cl=test.class;
                                                      Constructor gz=cl.getConstructor();
                                                        test t=(test) gz.newInstance();
                                                        System.out.println(t);

2)获取单独的构造方法,有参

                                                      Class cl=test.class;
                                                      Constructor gz=cl.getConstructor(String.class,int.class);
                                                      test t=(test) gz.newInstance("张三",67);
                                                       System.out.println(t);

4.反射ARR数组

                                                        //获取Class,这里定义arr的数据类型
                                                        Class cl=Class.forName("java.lang.Object");
                                                        Object arr=Array.newInstance(cl, 5);
                                                        //通过reflact包中的Array来设置名为arr,第3个值为5
                                ![下载.jpg][1]                        Array.set(arr, 3, 5);
                                                        //通过reflact包中的Array来获取名为arr,第3个值
                                                        Object elem=Array.get(arr, 3);
                                                        System.out.println(elem);
                                            
            

                                                    
            

u=4055771136,79106349&fm=27&gp=0.jpg大家好,已经很久没有给大家发布文章了,因为最近在学习很多新东西,已经保存到自己的印象笔记,所以后续会持续给大家
补更的,因为明天就开学了,今天晚上就用jquery写了一个小小的下拉菜单的demo。

知识点:

jquery的siblings():取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

大白话就是:拿到非当前对象的所有对象

还有一个查找的方法是children:取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

大白话就是:拿到当前对象下的某某子元素

demo:案例代码:

<!DOCTYPE html>

<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-3.0.0.js"></script>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    .nav{
        width: 300px;
        list-style: none;
        margin: 100px auto;
    }
    .nav>li{
        border: 1px solid #000;
        line-height: 35px;
        border-bottom: none;
        text-indent: 2em;
    }
    .nav>li:first-child{
        border-top-right-radius: 10px;
        border-top-left-radius: 10px;
    }
    .nav>li:last-child{
        border-bottom: 1px solid #000;
        border-bottom-right-radius: 10px;
        border-bottom-left-radius: 10px;
    }
    .sub{
        display: none;
    }
    .sub>li{
        list-style: none;
        background: mediumpurple;
    }
    .sub>li:hover{
        background: red;
        border-bottom: 1px solid #fff;
    }
</style>
<script>
    $(function () {
        $('.nav>li').click(function () {
            //拿到二级菜单
            var $sub=$(this).children('.sub');
            $sub.slideDown(300);
            //拿到非当前的一级菜单的二级菜单
            var othersub=$(this).siblings().children(".sub");
            //让其他二级菜单收起
            othersub.slideUp(300);
        })
    })
</script>




我最近开始玩github了,下半年也会有一个cms免费开源的程序跟大家见面

1. /*溢出部分样式*/  
2. 

.txt-ell {

3. 
whitewhite-space:nowrap;  //强制在一行显示   
4. 
overflow:hidden;    //溢出的内容切割隐藏   
5. 
text-overflow:ellipsis; //当内联溢出块容器时,将溢出部分替换为…   
6. 
word-break:keep-all;  //允许在单词内换行   
7. 
color: red;  //这里我自己标识一下   
8. 
padding: 0 7px;  //由于想跟边线留有距离,所以设置了下   
9. 

}

10. 

.table-fix {

11. 
table-layout:fixed;     
12. 

}

首先第二个样式是专门给table标签加的,想要实现内容溢出,那么表格必须有固定的宽高,表格内部的tr,td也要有固定的宽高。在用内容溢出之前,先要给table添加table-fix这个类。然后检查自己的tr,td有没有给width,如果没有的话,最好是给个吧,固定的也行,百分比的也行,我主要给的百分比,外边table给固定宽度,里面的tr和td就是百分比的宽度,这样才能使用内容溢出样式。最后如果哪个格子里面的内容非常的多,你想实现点点点,就给这个格子添加一个.txt-ell的类吧

下载.jpg