美文网首页
2017.12.20 点击旋转图片、鼠标滑入离开、C#中的反射

2017.12.20 点击旋转图片、鼠标滑入离开、C#中的反射

作者: 胡諾 | 来源:发表于2017-12-21 08:56 被阅读0次

    第一组:刘聪 点击旋转图片功能

    点击图片实现逆时针旋转功能:
    Html:


    image.png

    Model中存储了多张照片,通过遍历显示每张照片,绑定点击事件,并且传入事件和引索作为参数。
    Js:


    image.png

    通过current[i]记录点击次数,改变rotate值,实现旋转。
    效果:


    image.png

    该方法实现了简单的图片旋转功能,只要点击图片,图片就旋转90度。


    第二组:徐晋 鼠标滑入离开及移动

    Jquery中的mouseover,mouseout,mousemove方法:

    • mouseover() 方法:当鼠标指针位于元素上方时,会发生 mouseover 事件
    • mouseout() 方法:当鼠标指针从元素上移开时,发生 mouseout 事件
    • mousemove() 方法:当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件

    mouseover,mouseout,mousemove的使用方法示例之图片提示:

    代码:

    <script>
       $(function () {
           var x = 10;
           var y = 20;
           $("a.tooltip").mouseover(function (e) {
               this.myTitle = this.title;
               this.title = "";
               var imageTitle = this.myTitle ? "<br/>" + this.myTitle : "";
               var tooltip = "<div id='tooltip'><img src='" + this.href + "' alt='预览图'>" + imageTitle + "</div>";
               $("body").append(tooltip);
               $("#tooltip").css({
                   "top": (e.pageY + y) + "px",
                   "left": (e.pageX + x) + "px"
               }).show("fast");
           }).mouseout(function () {
               this.title = this.myTitle;
               $("#tooltip").remove();
           }).mousemove(function (e) {
               $("#tooltip").css({
                   "top": (e.pageY + y) + "px",
                   "left": (e.pageX + x) + "px"
               });
           });
       })
    </script>
    

    实现效果:
    鼠标滑入图片时显示图片的放大提示,并且提示可以跟随鼠标移动,鼠标离开图片时提示消失。

    image.png

    第三组:吴景霞 详解C#中的反射

    两个现实中的例子:
    1. B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确_)。

    2. 地球内部结构:地球的内部结构大体可以分为三层:地壳、地幔和地核。地壳是固体,地核是液体,地幔则是半液半固的结构(中学地理的内容,大家还记得吧?)。如何在地球表面不用深入地球内部就知道其内部的构造呢?对,向地球发射“地震波”,“地震波”分两种一种是“横波”,另一种是“纵波”。“横波”只能穿透固体,而“纵波”既可穿透固体又可以穿透液体。通过在地面对纵波和横波的反回情况,我们就可以大体断定地球内部的构造了。

    大家注意到这两个例子的共同特点,就是从一个对象的外部去了解对象内部的构造,而且都是利用了波的反射功能。在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法。

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个对象的类型在编译时还不知道。

    反射的用途:

    (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。
    (2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
    (3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
    (4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
    (5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
    (6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。
    (7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
    (8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。

    详情见下面链接:

    详解C#中的反射

    第四组:傅云 Jquery获取动态id

    在没有触发点击事件,而是调用方法自动生成的input或其他相关属性(id,class,value等)时,使用此JS方法是获取不到的

    document.getElementsByTagName("input")
    

    这个时候可以起作用的是JQuery的find()方法

    $('#div1').find("input");
    

    第五组:王颢 DateTimePicker总结

    在WinForm中经常会用到DateTimePicker这个控件,用这个控件获取时间会使用到Text属性或者Value属性。
    关于这两个属性,还是存在着一些的不同,在这里简单的测试和总结一下。

    首先看一下默认状态下的DateTimePicker控件

    就是由含年、月、日三个值拼成的一个字符串表示一个日期的值。


    image.png
    1. 设置DateTimePicker控件显示的格式

    这个控件有一个CustomFormat属性,这个属性可以用来控制控件值显示的日期格式。
    在设置这个属性之前,需要将Format属性设置为Custom,表示使用自定义的格式。

    CustomFormat的值有以下几种:
    (1)不设置任何值:使用默认的显示格式,就是你电脑右下角时间的格式(不包含时分秒)


    image.png
    image.png

    (2)使用自定义的值:这里的这个值是可以任意写的。。。。(不过瞎写没法获得时间)
    比如:aaaaa

    显示的就是 image.png

    这里设置格式的方法可以说是匹配特定字符。 以下这些字符是具有特殊含义的字符:y、M、d、h、H、m、s(其他的暂时没有发现)。

    y:代表年。
    使用yyyy设置后会在控件中显示对应的年份。


    image.png

    (另外还可以y、yy、yyy这三种会有特殊的显示,不过我也没太弄明白显示的规律,都是由年份相关的值组成的一串字符,一般情况也没啥用)

    M:代表月。
    MM:代表由两个数字符号组成的月份 ,如1月显示 01,12月显示12。
    M:也是代表月,但是这里小于10月均只显示1位,没有前置的0,其余的正常显示。例如:1月显示1,10显示10。

    d:代表天或者星期几
    dd:代表由两个数字符号组成的天 ,例如:1则显示 01,12显示12。
    d: 一位数只显示一个值,没有前置的0,其余正常显示。1显示1,10显示10。

    ddd:代表周几,显示是这样的 image.png dddd:这个代表的是星期几,显示式这个样子的 image.png

    (微软考虑的真周到啊。。。。。)

    这里要说一下超过4个以上的d,比如ddddddddddddd显示的依然是星期几,有没有上限不知道。那么如果要既显示日期有显示周几呢?很简单加上一个非d的字符放两个中间就行了。比如dd-dddd 显示的就是 image.png

    h/H:都是代表小时,这里使用h是12时制,H是24小时制。(控件会对你输入的值作处理的,比如你使用了h,那么超过12的值会自动转换)
    hh/HH:是两个字符组成小时,h/H是一个字符,和上边的M和d的规则是一样的。

    m:代表分钟。m和mm的规则和区别和上边一致。
    s:代表秒。s和ss的规则和区别也和上边一致。

    目前发现的特殊字符就上边这些,使用这些字符的组合基本就可以完成所有日期的显示格式了,比如显示年月日时分秒 那么格式为:yyyy-MM-dd HH:mm:ss 对应显示的就是 image.png
    2. 获取控件设置日期的两个方法及其区别

    一般来说获取控件的日期(值)有两种方法,一种是使用Text属性,另一种是使用Value属性。这两个属性都可以做到,但是他们还是有一定区别的,简单的说一下。

    1. 首先是Text属性,它是获取或设置与当前控件关联的文本。这个意思就是DateTimePicker上显示的是什么,你获取到的就是什么。比如你显示的是a,那么Text属性的值就是a。而且Text属性使用ToString()这个方法的时候是不能传递表达格式的字符串做参数。所以想获得想要的时间格式就需要使用CustomForma这个属性设置想要的格式。

      控件显示: image.png
    使用Text属性获得的: image.png
    1. 使用Value属性。它是获取或设置分配给控件的日期/时间值。这个值与设置的CustomForma属性的值没有任何关系,无论你设置什么格式,他获取的值就是一个固定格式。这个格式与你电脑设置的日期时间格式相同。

      控件显示: image.png
    使用Value属性获得的: image.png

    但是好处是这里在Value后的ToString()方法可以传递表达格式的字符串做参数。

    比如:dateTimePicker1.Value.ToString("yyyy-MM-dd"),这个格式参数的字符的含义和上边的是一致的。

    相关文章

      网友评论

          本文标题:2017.12.20 点击旋转图片、鼠标滑入离开、C#中的反射

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