jquery淡入淡出效果与注意事项

看到有的flash网站的图标,鼠标一放上去图标就缓缓变了,移开又会缓缓变回来,很是漂亮。我打算用jquery也做做看,能不能做出类似的效果。因为自己练手,就随便拉两张图片:
复制代码 代码如下:

<div id="div">
<img id="1" src="florian.jpg" style= "position:absolute;z-index:2;left:10px;top:10px;"/>
<img id="2" src="kamil.jpg" style= "position:absolute;z-index:1;left:10px;top:10px;"/>
</div>

这样第一张就会覆盖第二张图片,那我只要淡入淡出第一张图片就能实现特效了。于是就使用了hover,fadein和fadeout,简单的实现了
复制代码 代码如下:

$(document).ready(function () {
$("div").hover(
function () { $("#1").fadeout(1000); },
function () { $("#1").fadein(1000); }
);
});

但这样问题出来了,如果我在图片上不停地快速的移入移出鼠标。那么动画都进入列队了,那么动画就会一直在动,很是不好看。

于是我打算使用:dequeue(),定义:removes a queued function from the front of the queue and executes it.
我想如果不停的移入移出,那么就会删除上一个操作在列队中的动画。这样就会执行最后的动画了。
复制代码 代码如下:

function () { $("#1").dequeue().fadeout(1000); },
function () { $("#1").dequeue().fadein(1000); }

可是更麻烦的情况出现了,当不停地移入移出鼠标时,有时图片都没了,有时不变了。怎么回事?

然后又想到使用:stop(),定义:

stops教程 all the currently running animations on all the specified elements.
if any animations are queued to run, then they will begin immediately.

复制代码 代码如下:

function () { $("#1").stop().fadeout(1000); },
function () { $("#1").stop().fadein(1000); }

我停止前面所有的列队,总算可以了吧!但是却出现了图片淡到一半,不动了!就像两个图片叠加显示了一样。
又是怎么回事?
  直到我在stop中加参数,图片才能正常显示。
  clearqueue (可选)boolean
  如果设置成true,则清空队列。可以立即结束动画。
  gotoend (可选)boolean
  让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。
复制代码 代码如下:

function () { $("#1").stop(true,true).fadeout(1000); },
function () { $("#1").stop(true, true).fadein(1000); }

但这样就会出现执行完毕,突然显示整图的情况,就没有了淡入淡出的那样的效果了。
  没办法,只有使用animate了。
复制代码 代码如下:

function () { $("#1").stop().animate({ 'opacity': 0 }, 1000); },
function () { $("#1").stop().animate({'opacity':1}, 1000); }

或:

function () { $("#1").animate({ 'opacity': 0 }, { queue: false, duration: 1000 }); },
function () { $("#1").animate({ 'opacity': 1 }, { queue: false, duration: 1000 }); }

看一款淡入淡出实例

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>jquery淡入淡出、展开收缩菜单</title>
<style type="text/css教程">
ul li{list-style:none;}
ul li.menu{position:relative;width:120px;}
ul li.menu ul{display:none;text-align:center;background:#fff;border:1px solid #ddd;width:100px;padding:5px;}
ul li.menu ul li{padding:5px 0;border-bottom:1px dotted #ddd;}</style>
<script language="网页特效" src="/jquery/jquery-1.3.2.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$(".menu").hover(
function(){
//$(".content").fadein(800); // 淡入
$(".content").slidedown(800); // 展开
},function(){
//$(".content").fadeout(1000) // 淡出
$(".content").slideup(1000)    // 收缩
});
})
</script>
</head>
<body>
<ul>
<li class="menu">
<a>弹出菜单</a>
<ul class="content">
<li><a href="#">菜单内容1</a></li>
<li><a href="#">菜单内容2</a></li>
<li><a href="#">菜单内容3</a></li>
<li><a href="#">菜单内容4</a></li>
<li><a href="#">菜单内容5</a></li>
</ul>
</li>
</ul>
</body>
</html>

时间: 2024-09-20 04:18:30

jquery淡入淡出效果与注意事项的相关文章

jquery淡入淡出效果介绍

 本篇文章主要是对jquery淡入淡出效果的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 样式:      代码如下:  <style type="text/css">       #win {               width: 98%;              position: absolute;                   display: none;           float:left;           }      

jquery淡入淡出效果简单实例_jquery

本文实例讲述了jquery淡入淡出效果实现方法.分享给大家供大家参考,具体如下: 之前理解有一些误区,以为淡入淡出是删除该元素,其实只是把该元素隐藏起来 和 显示出来罢了. 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml

jquery 淡入淡出效果的简单实现_jquery

样式: 复制代码 代码如下:  <style type="text/css">      #win {              width: 98%;             position: absolute;                  display: none;          float:left;          }                       /*控制关闭按钮的位置*/        #close {         margin

jQuery入门(6) 淡入淡出效果

jQuery 提供了下面几种方法可以实现显示的淡入淡出效果: fadeIn() fadeOut() fadeToggle() fadeTo() fadeIn()方法 fadeIn() 实现淡入效果,其基本语法如下 : $(selector).fadeIn(speed,callback); 可选参数speed给出了淡入效果的时间,可以 使用 "slow","fast" 或是数值(微秒) 第二个可选参数为回调函数,在fadeIn()方法结束后调 用. $("b

jQuery实现首页图片淡入淡出效果的方法_jquery

本文实例讲述了jQuery实现首页图片淡入淡出效果的方法.分享给大家供大家参考.具体分析如下: 这里演示当当网的品牌店铺首页效果,演示地址为:http://static.dangdang.com/gm/topic/2270_181320.shtml 效果图如下所示: 需求: 1. 绿色区域要求在图片上方,半透明显示 2. 当鼠标移动到红色区域,切换相应的图片 3. 首页的三张大图轮转 HTML: <div id="carousel"> <div id="ca

jQuery实现图片文字淡入淡出效果_jquery

本实例主要讲解了jquery仿新浪微博图片文字列表上下淡进淡出间歇上下滚动效果,分享给大家供大家参考,具体内容如下 1.效果及功能说明 仿新浪微博图片文字列表上下淡进淡出间歇上下滚动 2.实现原理 首先要设定div内只能显示4个图片那么多出来的图片会自动隐藏然后在给图片添加一个动画的事件让他们可以滚动的播放出来上下滚动效果播放就是li标签里面的内容图片和文字把每一个li看成一个整体在滚动播放的时候进入div内的显示出来在最后离开div的时候隐藏在给整个动画效果设定一个时间就可以完整的运行. 3.

jQuery淡入淡出元素让其效果更为生动_jquery

为了达到更为生动的效果,可以把一个元素淡出或淡入,在任何一种情况下,都只是随着时间来改变元素的透明度.jQuery提供了3个和淡入淡出相关的函数: ·fadeIn()使得一个隐藏的元素淡入视野.首先,元素占据的空间出现在页面上(这可能意味着页面上的其他元素要移走):然后,元素逐渐地变得可见.如果元素在页面上已经可见,则这个函数没有任何效果.如果没有提供一个速度值,元素使用"常规"设置来淡入(400毫秒). ·fadeOut()通过使得一个可视的元素像幽灵般地淡出视线来隐藏它.如果元素在

原生js和jquery实现图片轮播淡入淡出效果

  原生js和jquery实现图片轮播淡入淡出效果          本文给大家分享的是使用原生的js和jQuery2种方法,分别实现图片轮播的淡入淡出效果的代码,非常实用,也方便小伙伴们对比分析,希望对大家学习js和jq能够有所帮助. 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成js使用,其实也就是用js原生模拟出这些用法. 但不管怎样,构造一个最基本的表现层是必须的 简单的图片轮播一般由几个

基于jQuery实现淡入淡出效果轮播图_jquery

用JavaScript做了平滑切换的焦点轮播图之后,用jQuery写了个简单的淡入淡出的轮播图,代码没有做优化,html结构稍微有一些调整,图片部分用ul替换了之前用的div.  html结构如下:  <div id="container"> <ul class="pic"> <li><a href="javascript:;"><img src="DSC01627.jpg"