Mr.coding

stay hungry,stay foolish.

第三章 事件处理(二)

本篇内容:

随着鼠标移动使图像明亮或模糊——opacity()属性 & rgba()属性

在按钮上应用悬停效果

切换应用一个CSS类——toggleClass()方法

创建基于图像的变换

8.随着鼠标移动使图像明亮或模糊——opacity()属性 & rgba()属性

网页上的图片初始是模糊的,但当鼠标移到图片上方时,图片明亮。

<!DOCTYPE html>

<html>

<head>

        <title>Test</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="style.css">

        <script type="text/javascript" src="jquery.js"></script>

        <script type="text/javascript">

                 $(document).ready(function(){

                         $("img").css("opacity",0.4);

                         $("img").bind("mouseover",function(){

                                  $("img").css("opacity",1.0);

                         });

                         $("img").bind("mouseout",function(){

                                  $("img").css("opacity",0.4);

                         });

                 });

        </script>

</head>

<body>

<img src="img1.jpg">

</body>

</html>

CSS属性opacity属性(不透明度)。Opacity的取值范围从0到1(或0~100%)

<!DOCTYPE html>

<html>

<head>

        <title>不同透明度的图像</title>

        <meta charset="utf-8">

        <style type="text/css">

                 img.opacity1{opacity: 0.25; width: 350px;height: 500px;}                    //设置图片的透明度

                 img.opacity2{opacity: 0.5; width: 350px;height: 500px;}

                 img.opacity3{opacity: 0.75; width: 350px;height: 500px;}

        </style>

</head>

<body>

        <img class="opacity1" src="1.jpg" />

        <img class="opacity2" src="1.jpg" />

        <img class="opacity3" src="1.jpg" />

</body>

</html>

显示效果:

设置透明度的另一种方法——rgba(r,g,b,透明度)颜色属性:

<!DOCTYPE html>

<html>

<head>

        <title>使用RGBA实现不同透明度</title>

        <meta charset="utf-8">

        <style type="text/css">

                 div.rgbaL1{background:rgba(255,0,0,0.2);height: 20px;}                //其中0.2是透明值

                 div.rgbaL2{background:rgba(255,0,0,0.4);height: 20px;}

                 div.rgbaL3{background:rgba(255,0,0,0.6);height: 20px;}

                 div.rgbaL4{background:rgba(255,0,0,0.8);height: 20px;}

                 div.rgbaL5{background:rgba(255,0,0,1.0);height: 20px;}

        </style>

</head>

<body>

        <div class="rgbaL1"></div>

        <div class="rgbaL2"></div>

        <div class="rgbaL3"></div>

        <div class="rgbaL4"></div>

        <div class="rgbaL5"></div>

</body>

</html>

显示效果:

9.在按钮上应用悬停效果

应用悬停效果,意味着当鼠标经过HTML元素时,改变元素的样式(比如按钮或图像的形状或颜色)。HTML页面如下显示:

<!DOCTYPE html>

<html>

<head>

        <title>Test</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="style.css">

        <script type="text/javascript" src="jquery.js"></script>

        <script type="text/javascript">

                 $(document).ready(function(){

                         $(".buttons").hover(

                                  function(){

                                  $(this).addClass("hover");

                         },

                                 function(){

                                  $(this).removeClass("hover");

                         }

                         );

                 });

        </script>

</head>

<body>

<span class="bold buttons">Bold</span>

<span class="italic buttons">Italic</span>

</body>

</html>

CSS页面代码:

.buttons{

        width:100px;

        float:left;

        text-align:center;

        margin:5px;

        border:2px solid;

        font-weight:bold;

}

.hover{

        cursor:crosshair;     //设置或检索在对象上移动的鼠标采用何种系统预定义的光标形状

        color:blue;

        background-color:cyan;

}

hover()方法把两个事件处理程序附加到指定的元素。一个事件处理程序在鼠标指针进入元素时触发,另一个事件处理程序在鼠标离开元素时触发。

.hover(handler1 , handler2);

Handler1是事件处理函数,包含鼠标进入指定元素时要执行的语句,而Handler2也是事件处理函数,包含鼠标离开指定元素时触发。在以上代码中可见,hover()中包含两个函数,一个addClass(“hover”)为元素添加hover的CSS样式;另一函数removeClass(“hover”)为元素移除hover的CSS样式。并将hover运用与两个按钮。

页面显示效果:

(当鼠标悬停在italic按钮上时)

注解:CSS样式表中:

cursor:crosshair;     //设置或检索在对象上移动的鼠标采用何种系统预定义的光标形状

 

10.切换应用一个CSS类——toggleClass()方法

当某事件发生在元素上时,请为该元素应用定义在CSS类中的样式属性,当同一事件发生在同一元素上时,从该元素中删除CSS类。也就是说,要在CSS类的应用与不应用之间进行切换。

保持上一个案例(在按钮上应用悬停效果)中的HTML页面代码和CSS样式表代码不变,修改jQuery代码。

$(document).ready(function(){

                         $(".buttons").click(function(){

                                  $(this).toggleClass("hover");

                         });

                 });

toggleClass()方法:如果CSS类已经应用到指定元素,则此方法删除CSS类;如果尚未应用,则为指定元素应用CSS类。

.toggleClass(“class”);

这里的class是在指定元素上将要应用的CSS类(如果尚未应用),或将要删除的CSS类(如果已经应用)。

以上jQuery代码表示,按钮上第一次发生单击事件时,把hover类所提供的样式表运用到按钮上,改变背景色和前景色;再次单击时(即在同一个按钮上再次发生单击事件时),从按钮上删除CSS样式,按钮恢复初始的外观。

同样效果的toggle()方法(此方法在新的jQuery版本中被删除,不推荐使用)

以上示例也可以用toggle()方法实现,修改jQuery代码:

                 $(document).ready(function(){

                         $(".buttons").toggle(

                                  function(){

                                          $(this).addClass("hover");

                                  },

                                  function(){

                                          $(this).removeClass("hover");

                                  }

                                  )

                 });

11.创建基于图像的变换

创建基于图片的变换。图片变换是指当鼠标在图像上移动时图像改变形状、图像指定超链接到某个网站。一旦单击图像,图像也发生变化,表示该图像已经被访问过。

HTML页面代码以及jQuery代码:

<!DOCTYPE html>

<html>

<head>

        <title>Test</title>

        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="style.css">

        <script type="text/javascript" src="jquery.js"></script>

        <script type="text/javascript">

                 // 把定义在样式表中的样式应用到roll类的空span元素

                 $(document).ready(function(){

                         $(".roll").addClass("link");

                         $(".roll").hover(function(){

                                  $(this).addClass("hover");

                         },

                         function(){

                                  $(this).removeClass("hover");

                         });

                         $(".roll").click(function(event){

                                  $(this).addClass("active");

                                  event.preventDefault();           //使超链接忽略默认动作(即导航到链接所指的网站)

                         })

                 });

        </script>

</head>

<body>

<a href="abc.com"><span class="roll"></span></a>

</body>

</html>

CSS样式表代码:

.link{

        display:block;

        width:300px;

        height:300px;

        background-image:url(btn1.png);

        background-repeat:no-repeat;

        background-position:top center;

}

.hover{

        display:block;

        width:700px;

        height:700px;

       background-image:url(btn2.png);

        background-repeat:no-repeat;

        background-position:top left;

}

.active{

        display:block;

        width:700px;

        height:700px;

        background-image:url(btn3.png);

        background-repeat:no-repeat;

        background-position:top left;

}

img{

        border:0;

}

前面的HTML文件中包含roll类的span元素,通过样式规则和jQuery代码为该元素填充图像。在样式表中,样式规则link包含网页加载时应用到图片的属性。它为图像指定宽度为300像素,高度300像素。把图片btn1加载为背景图片,不重复即只出现一次。

因为鼠标指针在图片上面移动时,想让图片变大,所以使用样式规则hover包含btn1图像,但使图像大小改变。

第三个样式active则表示一旦链接被访问过,则显示什么图像,这里还是使用了btn1图像。

(注意:由于图像资源有限,这三个图像内容应该是一样的,但是图像的样式,如大小、颜色、边框都应该不同,以便区分该连接是否访问过。)

posted on 2016-11-14 22:24  Miss.coding  阅读(206)  评论(0编辑  收藏  举报

导航