jquery效果(JQuery特效)

http://www.itjxue.com  2023-01-26 06:52  来源:未知  点击次数: 

jQuery实现切换页面过渡动画效果

直接为大家介绍制作过程,希望大家可以喜欢。

HTML结构

该页面切换特效的HTML结构使用一个main元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进度条。

main

div

class="cd-index

cd-main-content"

div

h1Page

Transition/h1

!--

your

content

here

--

/div

/div

/main

div

class="cd-cover-layer"/div

!--

this

is

the

cover

layer

--

div

class="cd-loading-bar"/div

!--

this

is

the

loading

bar

--

CSS样式

该页面切换特效中使用body::before和body::after伪元素在页面切换过程中创建两个遮罩层来遮住页面内容。它们的定位是固定定位,高度等于50vh,宽度为100%。默认情况下,使用CSS

transform属性将它们隐藏起来(translateY(-100%)/translateY(100%))。当用户切换页面的时候,这些元素被移动回视口当中(通过在body元素上添加.page-is-changing

class)。

下面的图片演示了这个过程:

页面切换特效

body::after,

body::before

{

/*

these

are

the

2

half

blocks

which

cover

the

content

once

the

animation

is

triggered

*/

height:

50vh;

width:

100%;

position:

fixed;

left:

0;

}

body::before

{

top:

0;

transform:

translateY(-100%);

}

body::after

{

bottom:

0;

transform:

translateY(100%);

}

body.page-is-changing::after,

body.page-is-changing::before

{

transform:

translateY(0);

}

页面切换时,页面内容的淡入淡出效果是通过改变div.cd-cover-layer的透明度实现的。它覆盖了.cd-main-content元素,并具有相同的背景色,然后在body被添加.page-is-changing

class的时候,将透明度从0修改为1。

Loading进度条使用.cd-loading-bar::before伪元素来制作。默认它被缩小(scaleX(0))和transform-origin:

left

center。当页面切换开始时它被使用scaleX(1)放大会原来的尺寸。

.cd-loading-bar

{

/*

this

is

the

loading

bar

-

visible

while

switching

from

one

page

to

the

following

one

*/

position:

fixed;

height:

2px;

width:

90%;

}

.cd-loading-bar::before

{

/*

this

is

the

progress

bar

inside

the

loading

bar

*/

position:

absolute;

left:

0;

top:

0;

height:

100%;

width:

100%;

transform:

scaleX(0);

transform-origin:

left

center;

}

.page-is-changing

.cd-loading-bar::before

{

transform:

scaleX(1);

}

特效中平滑的过渡效果使用CSS

Transitions来实现。每一个动画元素都被添加了不同的transition-delay,以实现不同的元素动画顺序。

JAVASCRIPT

该页面切换特效中在链接上使用data-type="page-transition"属性,用于触发页面切换事件。当插件检测到用户点击事件,changePage()方法将被执行。

$('main').on('click',

'[data-type="page-transition"]',

function(event){

event.preventDefault();

//detect

which

page

has

been

selected

var

newPage

=

$(this).attr('href');

//if

the

page

is

not

animating

-

trigger

animation

if(

!isAnimating

)

changePage(newPage,

true);

});

这个方法会触发页面切换动画,并通过loadNewContent()方法加载新内容。

function

changePage(url,

bool)

{

isAnimating

=

true;

//

trigger

page

animation

$('body').addClass('page-is-changing');

//...

loadNewContent(url,

bool);

//...

}

当新的内容被加载后,会替代原来main元素中的内容。.page-is-changing

class被从body中移除,新加载的内容会被添加到window.history中(使用pushState()方法)。

function

loadNewContent(url,

bool)

{

var

newSectionName

=

'cd-'+url.replace('.html',

''),

section

=

$('div

class="cd-main-content

'+newSectionName+'"/div');

section.load(url+'

.cd-main-content

*',

function(event){

//

load

new

content

and

replace

main

content

with

the

new

one

$('main').html(section);

//...

$('body').removeClass('page-is-changing');

//...

if(url

!=

window.location){

//add

the

new

page

to

the

window.history

window.history.pushState({path:

url},'',url);

}

});

}

为了在用户点击浏览器的回退按钮时触发相同的页面切换动画效果,插件中监听popstate事件,并在它触发时执行changePage()函数。

$(window).on('popstate',

function()

{

var

newPageArray

=

location.pathname.split('/'),

//this

is

the

url

of

the

page

to

be

loaded

newPage

=

newPageArray[newPageArray.length

-

1];

if(

!isAnimating

)

changePage(newPage);

});

使用jQuery制作选项卡效果

1)使用一个大盒子(div 将元素都装起来

2)盒子中使用2个无序标签分别搭建选项卡头部与内容

图例:

1)消除网页(盒子 默认边距

2)若无序列表中使用li标签,需要给ul添加弹性盒子属性(方法不唯一)

3)给每个li标签添加鼠标cursor: pointer(鼠标指针小手)属性

4)为标题盒子(ul class=title)里的第一个子元素(li)添加颜色样式(默认为第一个子元素

5)给所有的内容盒子(ul class=content)添加此元素不会被显示的属性(display:none)

6)给内容盒子里的第一个元素添加?显示为块级元素(display: block)

图例:

点击相应的标题会显示相应的内容

1)引入jquery框架

2)获取标题(ul)中的每一项(li),并且为他们注册点击事件(-

3)点击事件里先移除之前的高亮标题样式,添加当前当前的高亮标题样式

(根据this指针的指向来添加和移除样式)

4)获取内容盒子的第一项元素

5)移除之前显示内容的样式,添加当前显示内容的样式

(根据this指针的指向来添加和移除样式,使用eq方法根据this的指向找到对应元素的索引)

注意:eq() 方法将匹配元素集缩减值指定 index 上的一个。

图例:

总结:使用jquery方法需注意:

this的指向性问题与选择器的使用问题

jQuery里面隐藏和显示效果怎么写?

1、jquery.show()和jquery.hide()方法

语法:

$(selector).show(speed,callback);

$(selector).hide(speed,callback);

2、jquery.toggle()方法

语法:

$(selector).toggle(speed,callback);

3、带有淡入淡出效果的显示和隐藏

$(selector).fadeIn(speed,callback)

$(selector).fadeOut(speed,callback)

$(selector).fadeToggle(speed,callback)

$(selector).fadeTo(speed,opacity,callback)

4、带有滑动效果的显示和隐藏

$(selector).slideDown(speed,callback)

$(selector).slideUp(speed,callback)

$(selector).slideToggle(speed,callback)

注意:

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是滑动完成后所执行的函数名称。

jquery跑马灯效果

要实现简单的跑马灯效果其实运用html中marquee/marquee标签就可以达到了

基本属性如下:

1.滚动方向direction(包括4个值:up、 down、 left和 right)

2.滚动方式behavior(scroll:循环滚动,默认效果; slide:只滚动一次就停止; alternate:来回交替进行滚动)

3.滚动速度scrollamount(滚动速度是设置每次滚动时移动的长度,以像素为单位)

4.滚动延迟scrolldelay(设置滚动的时间间隔,单位是毫秒)

5.滚动循环loop(默认值是-1,滚动会不断的循环下去)

6.滚动范围width、height

7.滚动背景颜色bgcolor

8.空白空间hspace、vspace

如果想要更多的动画效果,更多选择jquery.marquee.js这款插件——ul里的啥都能滚并自带悬停效果

1.html 中写入ul id="marquee"li/li/ul

2.js中调入$("#marquee").marquee();即可

3.css比较简单,一般自己写,大致如下:

ul.marquee{display:block;line-height:1;position:relative;overflow:hidden;width:400px;height:22px;}

ul.marquee?li{ position:absolute;top:-999em;left:0; display:block; white-space:nowrap ;padding:3px5px;text-indent:0.8em;}

4.相关参数如下:

{

yScroll:"top"; ?//?初始滚动方向?(还可以是"top"?或?"bottom")

showSpeed:850; ?//?初始下拉速度

scrollSpeed:12; ?//?滚动速度

pauseSpeed:5000; ?//?滚动完到下一条的间隔时间

pauseOnHover:true; ?//?鼠标滑向文字时是否停止滚动

loop:-1; ?//?设置循环滚动次数?(-1为无限循环)

fxEasingShow:"swing"; ?//?缓冲效果

fxEasingScroll:"linear"; ?//?缓冲效果

cssShowing:"marquee-showing"; ?//定义class event handlers

init:null; ?//?初始调用函数

beforeshow:null; ?//?滚动前回调函数

show:null; ?//?当新的滚动内容显示时回调函数

aftershow:null; ?//?滚动完了回调函数

}

(责任编辑:IT教学网)

更多

推荐时间特效文章