前端编程提高之旅 jQuery常见特效

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前端编程提高之旅(二)----网站常见特效的jquery 实现

时间 2014-08-09 23:11:11 CSDN博客原

文/yingyiledi/article/details/38460189

最好的编程语言是逻辑,前端各种交互特效的实现多可以用jquery实现,特效可以纷飞,内在逻辑则基本不变。这一篇文章主要介绍jquery实现常见特效背后的逻辑。

1.通过类名获取元素集合

首先来看一个js原生代码不支持的方法,通过类来获取元素集合。document.getElementsByClassName=function(classname){

var retnode = [];

var myclass = new RegExp('\\b'+classname+'\\b');//匹配类名

var elem = this.getElementsByTagName('*');//得到所有元素

for (var j = 0; j < elem.length; j++)

{

var classes = elem[j].className;

if (myclass.test(classes)){

retnode.push(elem[j]);

}

}

return retnode;

}//通过遍历整个文档元素类名,返回所有指定类名的数组

逻辑思路:

通过构造一个类名的正则表达式,选取所有标签,并通过正则表达式与所有标签类名属性进行匹配,从而返回一个类名数组,实现通过类名得到元素集合的目标。

实现这个方法的同时,也给在不使用jquery的情况下,选取特定序数的元素提供了便利。

2.二级联动菜单的构造

$("#select1").change( function() { //侦测一级菜单的change事件

var id = $("#select1").val();

if(id == 1){ //通过id判断二级菜单

$.get('index.php', null, function(data){ //get方式传值

$("span").empty(); //清空标签

$("span").append(""); //填充对应的二级菜单

});

}else{

$.get('index.php', null, function(data){ //get方式传值

$("span").empty(); //清空标签

$("span").append(""); //填充对应的二级菜单

});

}

});

逻辑思路:

根据需要设置联动菜单的元素值被改变的情况,通过ajax方法传空值给自身页面,追加相应的元素,在这里是二级菜单。这里用到了jquery两个方法:c hange方法和empty方法。

change方法在选定标签值改变时,会被触发执行。empty方法则是将标签中html内容清空。

3.链接样式和链接内容的显示隐藏

$(function(){

$("li").each(function(index){ //遍历用户控制区域

$(this).mouseover(function(){ //获取当前用户选择区域

id = setTimeout(function(){ //使用时间事件函数实现缓动效果更好的用户体验$("li.tab").removeClass('tab'); //移除默认的选项按钮的样式

$(this).addClass("tab"); //给当前选项按钮添加样式

$("div.show").removeClass('show'); //移除默认的显示区域的样式

$("#tab1 div:eq("+index+")").addClass('show'); //根据选中的index索引添加样式 },300);

}).mouseout(function(){

clearTimeout(id); //用户鼠标移除时同时移除时间事件

});

});

});//链接对应相应内容的隐藏和显示

逻辑思路:

这里首先用到$()在其中书写函数,这里详细介绍了jquery构造函数的适用范围。通过遍历每个导航链接,当鼠标移上对应元素,首先移除所有默认选项样式,在悬浮元素加上默认选中样式。并移除当前显示样式,设置默认选项对应内容样式为显示状态。

这里的亮点在于使用了一个显示默认样式的缓动效果,用户体验更细致。

4.“显示更多(more)”功能的实现

$(function(){

var $hideObj = $('ul li:gt(5):not(:last)');//选择index大于等于5的li元素,除去最后一个,隐藏掉

$hideObj.hide();

$('.showmore span').click(function(){

if(!$hideObj.is(":visible")){//判断是否可见is方法

$hideObj.show();

$('.showmore span').css("background","url(./images/up.bmp) no-repeat 0 -10");//切换

状态更换图片

}else{

$hideObj.hide();

$('.showmore span').css("background","url(./images/down.bmp) no-repeat 0 0")

;//切换状态更换图片

}

});

});//选择一部分隐藏掉,再将部分判断是否显示,显示或者隐藏

相关文档
最新文档