十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文以实例形式详细讲述了jQuery动画特效的实现方法。分享给大家供大家参考之用。具体方法如下:
创新互联是一家专注于做网站、成都网站设计与策划设计,曲阳网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:曲阳等地区。曲阳做网站价格咨询:13518219792
1.自制折叠内容块
内容块如下:
div
class="module"
div
class="caption"
span标题/span
img
src="rollup.gif"
alt="rollup"
title="rolls
up
this
module"/
/div
div
class="body"
近日,《体坛周报》记者马德兴在接受天津体育频道《体坛新视野》节目采访时表示自己对恒大[微博]的情况比较担忧,恒大统治力比上赛季下降了很多,恒大外援存在位置重叠的问题,客场不输给西悉尼流浪者就是一个可以接受的结果。该节目称恒大联赛3连胜胜之不武,恒大的惹不起不过尔尔,恒大失去了对其它球队压倒性的优势,能力下降是恒大霸主地位有所动摇的根源所在。
/div
/div
给img元素绑定点击事件。
$(function()
{
$('div.caption
img').click(function
()
{
//先找到img的父级元素,再找该父级元素的子元素
var
$body
=
$(this).closest('div.module').find('div.body');
if
($body.is(':hidden'))
{
$body.show();
}
else
{
$body.hide();
}
});
});
运行效果如下图所示:
切换元素的显示状态,还可以用toggle方法。
$(function()
{
$('div.caption
img').click(function
()
{
$(this).closest('div.module').find('div.body').toggle();
});
});
以上是没有动画效果的,有时候感觉会很唐突。实际上,show,hide,toggle方法都可以有动画效果。比如:
$(function()
{
$('div.caption
img').click(function
()
{
$(this).closest('div.module').find('div.body').toggle('slow');
});
});
又比如:
$(function()
{
$('div.caption
img').click(function
()
{
$(this).closest('div.module').find('div.body').toggle('slow',
function()
{
$(this).closest('div.module').toggleClass('rolledup',
$(this).is(':hidden'))
});
});
});
2.使元素淡入淡出
fadeIn(speed,
callback)
fadeOut(speed,
callback)
fadeTo(speed,
opacity,
callback)
3.上下滑动元素
slideDown(speed,
callback)
slideUp(speed,
callback)
slideToggle(speed,
callback)
4.停止动画
stop(clearQueue,
gotoEnd)
5.创建自定义动画
animate(properties,
duration,
easing,
callback)
$('.classname').animate({opacity:'toggle'},'slow')
如果写一个扩展函数。
$.fn.fadeToggle
=
function(speed){
return
this.animate({opacity:'toggle'},'slow');
}
6.自定义缩放动画
$('.classname').each(function(){
$(this).animate({
width:
$(this).width()
*
2,
height:
$(this).height()
*
2
});
});
7.自定义掉落动画
$('.classname').each(function(){
$(this)
.css("position","relative")
.animate({
opacity:
0,
top:
$(window).height()
-
$(this).height()
-
$(this).position().top
},'slow',function(){
$(this).hide();
})
});
8.自定义消散动画
$('.classname').each(function(){
var
position
=
$(this).position();
$(this)
.css({
position:
'absolute',
top:
position.top,
left:position.left
})
.animate({
opacity:
'hide',
width:
$(this).width()*5,
height:
$(this).height()*5
top:
position.top
-
($(this).height()
*
5
/
2),
left:
position.left
-
($(this).width()
*
5
/2)
},'normal');
});
9.队列中的动画
//动画插入队列
$('img').queue('chain',
function(){});
$('img').queue('chain',
function(){});
$('img').queue('chain',
function(){});
$('img').queue('chain',
function(){});
$('button').click(function(){
$('img').dequeue('chain');
//删除队列中的动画
})
cleaeQueue(name)//删除所有未执行的队列中的动画
delay(duration,
name)//为队列中所有未执行的动画添加延迟
相信本文所述对大家的jQuery程序设计有一定的借鉴价值。
jquery 微信分享链接
script
wx.config({
debug: false,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。移动端会通过弹窗来提示相关信息。如果分享信息配置不正确的话,可以开了看对应报错信息
appId: '?php echo $signPackage["appId"];?',
timestamp: '?php echo $signPackage["timestamp"];?',
nonceStr: '?php echo $signPackage["nonceStr"];?',
signature: '?php echo $signPackage["signature"];?',
jsApiList: [//需要使用的JS接口列表,分享默认这几个,如果有其他的功能比如图片上传之类的,需要添加对应api进来
'checkJsApi',
'onMenuShareTimeline',//
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo'
]
});
/script
本文实例讲述了jQuery实现控制文字内容溢出用省略号(…)表示的方法。分享给大家供大家参考,具体如下:
jQuery限制字符字数的方法
$(function(){
//限制字符个数
$(".text").each(function(){
var
maxwidth=23;
if($(this).text().lengthmaxwidth){
$(this).text($(this).text().substring(0,maxwidth));
$(this).html($(this).html()+'…');
}
});
});
div
class="text"
style="width:150px;"你个杀千刀的,怎么写了这么多的文字,我要被拦腰截断了啊,天啊!/div
div
class="text"
style="width:150px;"你个杀千刀的,怎么写了这么多的文字,我要被拦腰截断了啊,天啊!/div
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
$.each(array,
[callback])
遍历
不同于例遍
jQuery
对象的
$.each()
方法,此方法可用于例遍任何对象(不仅仅是数组哦~).
回调函数拥有两个参数:第一个为对象的成员或数组的索引,
第二个为对应变量或内容.
如果需要退出
each
循环可使回调函数返回
false,
其它返回值将被忽略.
each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但比for循环强大.在数组中,它可以轻松的攻取数组索引及对应的值.例:
使用方法如下:
复制代码
代码如下:
var
arr
=
['javascript',
'php',
'java',
'c++',
'c#',
'perl',
'vb',
'html',
'css',
'objective-c'];
$.each(arr,
function(key,
val)
{
//
firebug
console
console.log('index
in
arr:'
+
key
+
",
corresponding
value:"
+
val);
//
如果想退出循环
//
return
false;
});
再来个测试程序:
[/code]
var
fruit
=
['苹果','香蕉','橙子','哈密瓜','芒果'];
//用原生getElementsByTagName获取h2元素的对象集合
var
h2obj=document.getElementsByTagName('h2');
//$.each()遍历数组
$('input#js_each').click(function(){
$.each(fruit,function(key,val){
//回调函数有两个参数,第一个是元素索引,第二个为当前值
alert('fruit数组中,索引:'+key+'对应的值为:'+val);
});
});
[/code]
相对于原生的for..in,each更强壮一点.
for..in也可以遍历数组,并返回对应索引,但值是需要通过arrName[key]来获取;
$.grep(array,
callback,
[invert])过滤
使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大):
待过滤数组和过滤函数.
过滤函数必须返回
true
以保留元素或
false
以删除元素.
另外,过滤函数还可以是可设置为一个字条串(个人不推荐,欲了解自行查阅);
复制代码
代码如下:
v[code]ar
temp
=
[];
temp
=
$.grep(arr,
function(val,
key)
{
if(val.indexOf('c')
!=
-1)
return
true;
//
如果[invert]参数不给或为false,
$.grep只收集回调函数返回true的数组元素
//
反之[invert]参数为true,
$.grep收集回调函数返回false的数组元素
},
false);
console.dir(temp);
再来个测试程序:
复制代码
代码如下:
//$.grep()过滤数组
$('input#js_grep').click(function(){
$.grep(fruit,function(val,key){
//过滤函数有两个参数,第一个为当前元素,第二个为元素索引
if(val=='芒果'){
alert('数组值为
芒果
的下标是:
'+key);
}
});
var
_moziGt1=$.grep(fruit,function(val,key){
return
key1;
});
alert('fruit数组中索引值大于1的元素为:
'+_moziGt1);
var
_moziLt1=$.grep(fruit,function(val,key){
return
key1;
},true);
//此处传入了第三个可靠参数,对过滤函数中的返回值取反
alert('fruit数组中索引值小于等于1的元素为:
'+_moziLt1);
});
$.map(array,[callback])按给定条件转换数组
作为参数的转换函数会为每个数组元素调用,
而且会给这个转换函数传递一个表示被转换的元素作为参数.
转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,
并扩展至原始数组中.这个是个很强大的方法,但并不常用.
它可以根据特定条件,更新数组元素值,或根据原值扩展一个新的副本元素.
复制代码
代码如下:
//1.6之前的版本只支持数组
temp
=
$.map(arr,
function(val,
key)
{
//返回null,返回的数组长度减1
if(val
===
'vb')
return
null;
return
val;
});
console.dir(temp);
//1.6开始支持json格式的object
var
obj
=
{key1:
'val1',
key2:
'val2',
key3:
'val3'};
temp
=
$.map(obj,
function(val,
key)
{
return
val;
});
console.dir(temp);
再来个测试程序:
复制代码
代码如下:
//$.map()按给定条件转换数组
$('input#js_map').click(function(){
var
_mapArrA=$.map(fruit,function(val){
return
val+'[新加]';
});
var
_mapArrB=$.map(fruit,function(val){
return
val=='苹果'
?
'[只给苹果加]'+val
:
val;
});
var
_mapArrC=$.map(fruit,function(val){
//为数组元素扩展一个新元素
return
[val,(val+'[扩展]')];
});
alert('在每个元素后面加\'[新加]\'字符后的数组为:
'+
_mapArrA);
alert('只给元素
苹果
添加字符后的数组为:
'+
_mapArrB);
alert('为原数组中每个元素,扩展一个添加字符\'[新加]\'的元素,返回的数组为
'+_mapArrC);
});
$.inArray(val,array)判断值是否存在于数组中
确定第一个参数在数组中的位置,
从0开始计数(如果没有找到则返回
-1
).记得indexOf()方法了吗?
indexOf()返回字符串的首次出现位置,而$.inArray()返回的是传入参数在数组中的位置,同样的,如果找到的,返回的是一个大于或等于0的值,若未找到则返回-1.现在,
知道怎么用了吧.
有了它,
判断某个值是否存在于数组中,就变得轻而易举了.
复制代码
代码如下:
//返回元素在数组中的位置,0为起始位置,返回-1则未找到该元素
console.log($.inArray('javascript',
arr));
测试程序:
[code]
//$.inArray判断值是否在数组中,不存在返回-1,存在则返回对应索引值
$('input#js_inarray').click(function(){
var
_exist=$.inArray('芒果',fruit);
var
_inexistence=$.inArray('榴莲',fruit)
if(_exist=0){
alert('芒果
存在于数组fruit中,其在数组中索引值是:
'+_exist);
}
if(_inexistence
0){
alert('榴莲
不存在于数组fruit中!,返回值为:
'+_inexistence+'!');
}
});
回调么?是说再进行修改么?还是怎么回事呢? 若是再进行修改的话,那是没办法的,就跟发出去的微信一样的,没办法修改的,只能删除之后,修改再重新发布才行~
晒单 就是传一张图片保存在数据库
分享的时候将图片设置为数据库的这张图片
// 分享插件 jiathis 参考