2014年6月21日星期六

jQuery基础---动画效果 - 努力就有机会

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
jQuery基础---动画效果 - 努力就有机会  阅读原文»

内容摘要:

1.显示、隐藏

2.滑动、卷动

3.淡入、淡出

4.自定义动画

5.列队动画方法

6.动画相关方法

7.动画全局属性

发文不易,转载请注明出处~

一.显示、隐藏

jQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。

$('.show').click(function () { //显示

  $('#box').show();

});

$('.hide').click(function () { //隐藏

  $('#box').hide();

});

PS:.hide()方法其实就是在行内设置 CSS 代码:display:none; 而.show()方法要根据原来元素是区块还是内联来决定,如果是区块,则设置 CSS 代码:display:block; 如果是内联,则设置 CSS 代码:display:inline;。

在.show()和.hide()方法可以传递一个参数,这个参数以毫秒(1000 毫秒等于 1 秒钟)来控制速度。并且里面富含了匀速变大变小,以及透明度变换。

$('.show').click(function () {

  $('#box').show(1000); //显示用了 1 秒

});

$('.hide').click(function () {

  $('#box').hide(1000); //隐藏用了 1 秒

});

除了直接使用毫秒来控制速度外,jQuery 还提供了三种预设速度参数字符串:slow、normal 和 fast,分别对应 600 毫秒、400 毫秒和 200 毫秒。

$('.show').click(function () {

  $('#box').show('fast'); //200 毫秒

});

$('.hide').click(function () {

  $('#box').hide('slow'); //600 毫秒

});

PS :不管是传递毫秒数还是传递预设字符串, 如果不小心传递错误或者传递空字符串。那么它将采用默认值:400 毫秒。

$('.show').click(function () {

  $('#box').show(''); //默认 400 毫秒

});

列队动画效果:

//列队动画,使用.show()和.hide()的回调函数实现

$('.show').click(function () {

  $('#box').show('slow', function () {

    alert('动画持续完毕后,执行我!');

  });

});

//列队动画,使用函数名调用自身(多个元素的时候)

$('.show').click(function () {

  $('div').first().show('fast', function showSpan() {

   $(this).next().show('fast', showSpan);

  });

});

//列队动画,使用 arguments.callee 匿名函数自调用(重复无限次执行)

$('.hide').click(function () {

  $('div').last().hide('fast', function() {

    $(this).prev().hide('fast', arguments.callee);

  });

});

.toggle() 方法实现显示和隐藏:

我们在使用.show()和.hide()的时候,如果需要一个按钮切换操作,需要进行一些条件判断。而 jQuery 提供给我们一个类似功能的独立方法:.toggle()。

$('.toggle').click(function () {

  $(this).toggle('slow');

});

二.滑动、卷动

jQuery 提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名思义,向上收缩(卷动)和向下展开(滑动)。

$('.down').click(function () {

  $('#box').slideDown();

});

$('.up').click(function () {

  $('#box').slideUp();

});

$('.toggle').click(function () {

  $('#box').slideToggle();

});

注意:滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。

三.淡入、淡出

jQuery 提供了一组专门用于透明度变化的方法:.fadeIn()和.fadeOut(),分别表示淡入、淡出,当然还有一个自动切换的方法:.fadeToggle()

$('.in').click(function () {

  $('#box').fadeIn('slow');

});

$('.out').click(function () {

  $('#box').fadeOut('slow');

});

$('.toggle').click(function () {

  $('#box').fadeToggle();

});

上面三个透明度方法只能是从 0 到 100,或者从 100 到 0,如果我们想设置指定值就没有办法了。而 jQuery 为了解决这个问题提供了.fadeTo()方法

$('.toggle').click(function () {

  $('#box').fadeTo('slow', 0.33); //0.33 表示值为 33

});

PS:淡入、淡出效果和显示、隐藏效果一样,具有相同的参数。对于.fadeTo()方法,如果本身透明度大于指定值,会淡出,否则相反。

四.自定义动画

jQuery 提供了几种简单常用的固定动画方面我们使用。 但有些时候, 这些简单动画无法满足我们更加复杂的需求。这个时候,jQuery 提供了一个.animate()方法来创建我们的自定义动画,满足更多复杂多变的要求。

$('.animate').click(function () {

  $('#box').animate({

    'width' : '300px',

    'height' : '200px',

    'fontSize' : '50px',

    'opacity' : 0.5

  });

});

PS:一个 CSS 变化就是一个动画效果,上面的例子中,已经有四个 CSS 变化,已经实现了多重动画同步运动的效果

.animate()方法必传的参数只有一个,就是一个键值对 CSS 变化样式的对象。还有两个可选参数分别为速度和回调函数。

$('.animate').click(function () {

  $('#box').animate({

    'width' : '300px',

    'height' : '200px'

  }, 1000, function () {

    alert('动画执行完毕执行我!');

  });

});

到目前位置, 我们都是创建的固定位置不动的动画。 如果想要实现运动状态的位移动画,那就必须使用自定义动画,并且结合 CSS 的绝对定位功能。

$('.animate').click(function () {

  $('#box').animate({

    'top' : '300px', //首先必须设置 CSS 定位

    'left' : '200px'

  });

});

自定义动画中, 每次开始运动都必须是初始位置或初始状态, 而有时我们想通过当前位置或状态下再进行动画。jQuery 提供了自定义动画的累加、累减功能。

$('.animate').click(function () {

  $('#box').animate({

    'left' : '+=100px'

  });

});

自定义实现列队动画的方式有两种:

1.在回调函数中再执行一个动画;

2.通过连缀或顺序来实现列队动画。

//通过依次顺序实现列队动画

1 $('.animate').click(function () {
2
3   $('#box').animate({'left' : '100px'});
4
5   $('#box').animate({'top' : '100px'});
6
7   $('#box').animate({'width' : '300px'});
8
9 });

注意:如果不是同一个元素,就会实现同步动画。

//通过连缀实现列队动画

1 $('.animate').click(function () {
2
3 $('#box').animate({
4
5 'left' : '100px'
6
7 }).animate({
8
9 'top' : '100px'
10
11 }).animate({
12
13 'width' : '300px'
14
15 });
16
17 });

//通过回调函数实现列队动画

1 $('.animate').click(function () {
【C】一个读取文件记录器 - Lzzzz  阅读原文»

分享一下!!!

#include<stdio.h>
#include
<windows.h>
#define N 70000 //定义行数!!用空间换取时间
struct student
{
char name[20];
int num;
}a[N];
int main()
{
void GetOpenFileLine(char *szFile);
void otherFile(char *buffer);
char buffer[256];
ZeroMemory(buffer,
sizeof(buffer)/sizeof(char));
printf(
"请输入需要读取文件的【绝对路径】\n");

fflush(stdin);
gets(buffer);
//因为输入的文件中可能有空格等,所以用fgets
otherFile(buffer);
system(
"pause");

}




void otherFile(char *buffer)
{
FILE
*fp;
char ch='\\';
int i,j=0;


for(i=0;buffer!='\0';i++)
{
if(buffer==ch)
{
buffer[j
++]='\/';
}
else
{
buffer[j
++]=buffer;
}

}
buffer[j]
='\0';
fp
=fopen(buffer,"r");
if(NULL==fp)
{
system(
"cls");
printf(
"can not open the file");
Sleep(
3000);
return;
}

else
{
GetOpenFileLine(buffer);
}


}

void GetOpenFileLine(char *szFile)
{
int iCounter=0;
int i=0;
float persent=0;
char buffer[256];
FILE
*fp=fopen(szFile,"r");
while(!feof(fp))
{
fgets(buffer,
256,fp);
iCounter
++;
}
printf(
"文件一共有%d行\n",iCounter);
fclose(fp);
fp
=fopen(szFile,"r");
while (!feof(fp))
{
fscanf(fp,
"%s %d ",a.name,&a.num);
i
++;
persent
=(float)i/iCounter;
printf(
"\r");
printf(
"正在读取第%d行!\t已完成%0.2f%%",i,persent*100);
Sleep(
10);

}

}


本文链接:【C】一个读取文件记录器,转载请注明。

阅读更多内容

没有评论:

发表评论