演示:



代码uff1a


$(文档)Ready(函数(){)
GreyInitRedux();
IeDropdownsNav();
IeDropdownsFilter();
ItemViewer();
JsTabsetInit();
滑块();
headertabs();
旋转木马();
EmergencyClose();
replylinks();
AdjournLinks();
zebra_strip_rows();
visitor_site_slideshow();
});

无功carousel_round = 0;

/ * -------------------------------------------
灰色的初始值
------------------------------------------- * /
功能greyinitredux(){
$(input.filled,TextArea。填充)。焦点(功能(e){)
如果(this.value =这个默认值)
{
$(这)RemoveClass('filled);
这个值=;
}
$(this)Blur(函数(f){)
如果(this.value = =这个默认值){
$(这)AddClass('filled);
}人(this.value = =如果){
this.value = this.defaultvalue;
$(这)AddClass('filled);
}
});
})

}

/ * -------------------------------------------
IE6的CSS下拉菜单主导航
------------------------------------------- * /
功能iedropdownsnav(){
如果(文件。alldocument。getElementById)
{
navroot = document.getelementbyid('main-nav);
如果(!NavRoot){ return false;}

为(i = 0;i < navroot.childnodes.length;i++)
{
节点= navroot子{我};
如果(节点。节点名= =李)
{
节点onmouseover =函数()。
{
这类名+ =过度;
}
节点。onmouseout=功能()
{
这一方法= this.classname.replace(过度',');
}
}
}
}
}


/ * -------------------------------------------
IE6的CSS下拉菜单主导航
------------------------------------------- * /
功能iedropdownsfilter(){
如果(文件。alldocument。getElementById)
{
navroot = document.getelementbyid('filter-drop);
如果(!NavRoot){ return false;}

为(i = 0;i < navroot.childnodes.length;i++)
{
节点= navroot子{我};
如果(节点。节点名= = 'div)
{
节点onmouseover =函数()。
{
这类名+ =过度;
}
节点。onmouseout=功能()
{
这一方法= this.classname.replace(过度',');
}
}
}
}
}




/ * -------------------------------------------
查看更多
------------------------------------------- * /
功能itemviewer(){
/ / $(document)。代表(#过滤掉,过滤导航,。膨胀>。负荷,听到咔哒声,功能(E)
/ / $(document)。delegate.filter-nav '('。膨胀>。负荷,听到咔哒声,功能(E)。
$(document)。委托('。过滤导航,点击功能(E))
{
获取我们试图查看的内容的SRC
VaR datasrc =美元(这)Attr('data-src);

确定我们是否试图对现有视图进行排序
如果($(this)。Attr('data-sort ')){
无功datasort =美元(这)Attr('data-sort);
{人}
无功datasort = $('。过滤导航>李>)。Attr('data-sort);
}

我们有许多项目
无功itemoffset = $('。expandable.listing >里的)大小();

找到我们是否点击了菜单,如果是的话,清除一切
如果($(this)。最近('div)。HasClass(过滤器))
{
无功hiddendiv = $(',{
类:项目隐藏分隔符
高度:$('膨胀')OuterHeight()。
});
$('。膨胀>。负载)前(hiddendiv);

$(可展开>可扩展>否;
$('。负载)。Attr('data-src,datasrc);

下拉切换类
无功clickedclass =美元(这)。父(Attr)(' ');
$(#滤波器降强),RemoveClass()AddClass(clickedclass);

下拉式切换的文字
无功thislabel =美元(这)文本();
$(#过滤掉强跨)的文本(thislabel);

抓斗从点击菜单项datasrc /并用它填充过滤器
$('。过滤导航)。Attr('data-src,datasrc);
$('。过滤导航李)RemoveClass(主动的);
$('。过滤导航>里)。情商(0)。AddClass(主动的);
}

如果我们点击了过滤器的导航,如果是的话,让我们切换
如果($(this)。最近('ul)。HasClass(过滤导航)){
$('。过滤导航李)RemoveClass(主动的);
$(这)。父(AddClass)(主动的);

也让我们删除所有项目,然后用我们替换它们。
无功hiddendiv = $(',{
类:项目隐藏分隔符
高度:$('膨胀')OuterHeight()。
});
$('。膨胀>。负载)前(hiddendiv);

$(可展开>可扩展>否;
}

美元。得到(datasrc,{偏移:itemoffset,排序:datasort },功能(数据){)
$(可展开的分隔符);
无功hiddendiv = $();
$('。膨胀>。负载)前(hiddendiv);
$(hiddendiv)。追加(数据)。隐藏()。RemoveClass(隐藏),FadeIn();
});

E.preventDefault();
});
}


功能jstabsetinit(){
tabset = $(var $ '。标题tabset)。情商(0);

VaR表示标签列表= $(美元,{阶级:标题选项卡});
tabset.prepend美元($表示标签列表);

$(div.heading-tab H3)。每个(function())
{
var = $('',{
类:$(这)Attr(' '),
onclick:_gaq.push({ '_trackevent 、 'connect ,一、+ $(this)。Attr(' ')+,3 }),
href:#
html:$(this)。Html()
});
var $ = $(');
li.append美元(美元锚);
tablist.append美元(合礼);
});

$('div.heading-tab)删除();

$('。标题tabset:GT(0))。每个(function())
{
tabset.append美元($(this)。找到(上市));
美元(这个);
});
}


函数滑块(){
$(滑块)。每个(函数())
{
当我们遍历滑块/项时,我们将记录最高的一个和左边的位置。
每个元素
VaR最大高度= 0,lastwidth = 0;

抓取滑块并确保溢出是隐藏的,它有一个定义的宽度。
变量$ = $(this);
slider.css美元('width,slider.outerwidth美元());
slider.css美元(下,'relative);
slider.css美元('overflow '隐藏');

索引存储(或当前选中的幻灯片)
slider.prop美元('index ',0);

循环通过每一个直接的
slider.find美元(>(功能)(一)
{
将子对象本地化为jQuery对象
var $ = $(this);

如果这是最高的子文档
如果($ li.outerheight()>最大高度)
{
最大高度= $()li.outerheight;
}

将每个子对象放在前一个兄弟的右/右
li.css美元(下',将');
li.css美元(' ',0);
li.css美元(右,lastwidth);

更新数学,这样我们知道下一个兄弟的位置。
lastwidth + = $()li.outerwidth;
});

设置滑块的高度/基于最高个子
/ / slider.css美元('height,最大高度);

构建上一个控件按钮,并向其相关的滑块存储一个引用
美元=美元先前VaR(' ',{阶级:沪指残疾人
previous.prop美元(美元'slider,滑块);

构建下一个控制按钮,并向其相关的滑块存储一个引用
下一个
next.prop美元(美元'slider,滑块);

构建控件div并将其添加到标记中
控件$ =$;
slider.after美元(美元控制);
slider.prop美元(美元'controls,控制);
});

用于控件上的单击
$(document)。委托('。上市+。控制。昨日,上市+。控制。下一步,点击功能(事件))
{
停止我们的点击,影响到浏览器/浏览器/ URL
Event.preventDefault();

本地化单击链接的jQuery版本
var $ = $(this);

我们在创建这些链接时存储的滑块
VaR('slider anchor.prop滑块=美元美元);

更漂亮代码的索引/本地化
无功focusedindex = slider.prop美元('index);

焦点是什么幻灯片
VaR的焦点= slider.find美元美元(>)Eq(focusedindex);

获取该集中的幻灯片的宽度
无功widthdelta = focus.outerwidth美元();

如果我们点击下一个按钮,我们将向左移动(负值,所以
乘以1)。
如果($ anchor.hasclass(下))
{
widthdelta = - 1;
}

focusedindex =($ anchor.hasclass(下)1):1;

检查即将到来的动作不会把第一个元素推得太远。
在元 / /留下空白
如果($ slider.find(>)。情商(0)。位置(左)+ widthdelta > 0)
{
返回true;
}

检查下一步动作是否会把最后一个元素推到左边太远。
元素 / /后留下的空白
VaR lastchild美元= slider.find美元(>),Eq(1)
如果($ lastchild.position()()。左+ widthdelta << slider.outerwidth美元()-()- lastchild.outerwidth美元1)
{
返回true;
}

所有的孩子 / /得到的元素,所以我们可以通过循环和detmine偏移的基础
在/宽度上
VaR的兄弟姐妹slider.find美元美元=(>);

最后,遍历每个子单元并启动动画。
siblings.each美元(函数(指数))
{
我们将在一秒钟内确定‘左',然后坐紧。
var = 0;

子元素本地化
var $ = $(this);

循环遍历每个兄弟并确定新左
如果(指数<focusedindex)
{
左= $()slider.outerwidth;
}

If (index index < focusedIndex > = focusedIndex + 3)
{
左= 219 *(指数focusedindex);
}

如果(指数= focusedindex + 3)
{
slider.outerwidth美元左=()×2;
}

动画开始
li.animate美元({ }:左,右300);

我们一开始是
如果(索引= 0 =左= 0)
{
slider.prop美元('controls)。找到(里面)。AddClass(禁止的);
}
否则如果(索引= 0)
{
slider.prop美元('controls)。找到(里面)。RemoveClass(禁止的);
}

我们在结尾处
如果($兄弟。大小)- 1(指数= = = = slider.outerwidth美元(左)至lastchild.outerwidth(- 1))
{
slider.prop美元('controls)。找到('。下一个)AddClass(禁止的);
}
如果siblings.size美元(指数)=(- 1)
{
slider.prop美元('controls)。找到('。下一个)RemoveClass(禁止的);
}
});

如果我们不在这里,那么我们实际上移动了滑块,将引用更新到
焦点 /幻灯片
slider.prop美元('index ',focusedindex);
});
}

headertabs()函数
{
tabset = $(var $ '。标题tabset)

tabset.find美元('。上市:GT(0)')隐藏();
tabset.find美元('。控制:GT(0)')隐藏();
tabset.find美元('。标题标签里)。情商(0)。AddClass(主动的);

$(document)。委托('。标题标签',点击',功能(事件))
{
Event.preventDefault();

$(这)。父(AddClass)(主动的);
$(这)。父母兄弟姐妹(),(),RemoveClass(主动的);

VaR指标= $(这)。母(。prevall)(大小)(*);

$(这)。父母('。标题tabset)。找到('。上市)隐藏();
$(这)。父母('。标题tabset)。找到('。上市)。情商(指数)显示();

$(这)。父母('。标题tabset)。找到('控制')隐藏();
$(这)。父母('。标题tabset)。找到('控制')。情商(指数)显示();
});
}

函数转盘()
{
$(document)。委托('。旋转木马。接下来,。旋转木马。以前的',点击',功能(事件))
{
默认的锚动作
Event.preventDefault();

当前的传送带
var $ = $(this);

检查我们是否已经处于运动的中间
如果($ carousel.prop(就喊‘动'))
{
返回true;
}

实际上,我们单击了它,如果它关闭,则停止任何正在运行的计时器。
如果(事件。ClientX)
{
停车(旋转木马);
}

索引本地化,所以我们知道我们在哪里。
VaR指标= carousel.prop美元('index);

确定我们是前进还是后退
VaR(这)=美元前进。HasClass(下);

所有幻灯片
VaR的幻灯片carousel.find美元美元=('旋转木马项目);

当前焦点的幻灯片
VaR的焦点= slides.eq美元美元(指数);

弄清楚我们从哪里来
无功nextobject =前进nextslide($轮播,指数):previousslide($轮播,指数);

locaalize下div是 / /显示
VaR下= nextobject.element美元;

将要显示的下一个元素的索引本地化。
VaR的新指标= nextobject.index;

确定我们应该在何处放置下一个元素,以便它从正确的侧面滑动。
无功initialleft =前进(文档美元。体)。OuterWidth():next.outerwidth美元();

当前的零保存位置,所有的东西都将从这里移动到/从这里移动。
VaR零点= focus.offset美元(左);

确定焦点移动的位置
无功targetleft =零点+(通过next.outerwidth美元(美元):next.outerwidth()));

我们致力于移动现在 /真正的所以我们不要重复动画设置标志
carousel.prop美元(就喊‘动',真的);

所有的z-indexes / /重置为1
slides.css美元('z-index ',1);

使当前聚焦的幻灯片高于其他所有幻灯片
focus.css美元('z-index ',2);

设置当前幻灯片,使其能动画出来
focus.css美元({
位置:绝对
顶部:0,
左:零点
});

下一个幻灯片以滑动/安装,将其移动到聚焦幻灯片和非屏幕上方。
$next.css ({
不透明:0,
位置:绝对
顶部:0,
左:initialleft,
Z:3
});

当前幻灯片退出/动画
focus.animate美元({
不透明:0,
左:targetleft
},800);

我们在做什么动画
var动画{ {
不透明:1,
左:零点
}

IE浏览器
如果(美元。browser.msie parseInt(美元。浏览器版本)< = 8)
{
Delete animation.opacity;
focus.get美元(0),Style.removeAttribute('filter);
next.get美元(0),Style.removeAttribute('filter);
}



在下一个动画幻灯片中,完成后重置所有内容。把它换回来
删除我们的相对定位,动画标志和隐藏前一个元素
next.show美元()(),动画(动画、800、功能())
{
focus.hide美元();
美元(这个)。Css({
位置:相对
左:0
});

修复 / / MSIE
如果(美元。browser.msie parseInt(美元。浏览器版本)< = 8)
{
this.style.removeattribute('filter);
}

carousel.prop美元(就喊‘动',假);
});

动画我们 /轮播的高度因为事情绝对箱模式拍摄
carousel.animate美元({
/ / 最小高度:next.outerheight美元()
});

最后更新我们的索引以反映当前视图
carousel.prop美元('index,新指标);
});

$(document)。委托('。旋转木马。暂停',点击'功能(事件))
{
默认的锚动作
Event.preventDefault();

旋转木马/本地化
var $ = $(this);

如果存在的话,当前的获取计时器
VaR定时器= carousel.prop美元('timer);

定时器启动它
如果(!定时器)
{
启动(旋转木马);
}

停止它/定时器
其他的
{
停车(旋转木马);
}
});

另外,一个新的启动计时器将播放/暂停按钮更新为正确的可视状态。
函数启动(旋转木马)
{
定时器= setInterval()函数()
{
carousel.find美元(下)。情商(0)。Trigger(听到咔哒声);

/ / N.C.:添加到经过一轮停止旋转木马。
VaR指标= carousel.prop美元('index);
如果(指数= = 0 carousel_round > 0){
停车(旋转木马);
}
否则如果(索引= 1){
carousel_round + +;
}

},5000);

carousel.prop美元('timer,定时器);
carousel.find美元('。玩。暂停)。RemoveClass(扮演的);
}

任何现有的停止计时器都会将播放/暂停按钮更新为正确的。
视觉/状态
功能停止(旋转木马)
{
ClearInterval(定时器);

carousel.prop美元('timer,假);
carousel.find美元('暂停')AddClass(扮演的);

/ / N.C.:添加到经过一轮停止旋转木马。
carousel_round = 0;
}

功能nextslide($轮播,指数)
{
VaR的幻灯片carousel.find美元美元=('旋转木马项目);

如果(指数+1<slides.size美元())
{
返回{指数):指数+ 1,元:slides.eq美元(指数1)};
}

返回{指数):0、元:slides.eq美元(0)};
}

功能previousslide($轮播,指数)
{
VaR的幻灯片carousel.find美元美元=('旋转木马项目);

如果(指数= 0)
{
返回{指数):指数,元:slides.eq美元(指数)};
}

返回{指数:slides.size美元()1,元:slides.eq美元(1)};
}

构建包含在页面中的控件
previousbtn = $(var $,{阶级:以前
Var $playPauseBtn = $('', {class: play pause
nextbtn = $(var $,{阶级:下一个
controlsdiv = $(var $,{阶级:旋转木马控制});
controlsdiv.append美元(美元previousbtn);
controlsdiv.append美元(美元playpausebtn);
controlsdiv.append美元(美元nextbtn);

循环通过每个旋转木马并设置/一些默认属性/样式
$(旋转木马)。每个(函数())
{
这个函数的旋转木马
变量$ = $(this);

定位和默认/设置高度,因为我们要拿出来的
一旦动画启动/流
carousel.css美元({
位置:相对
/ / 最小高度:carousel.find美元('旋转木马项目)。情商(0)。OuterHeight( / / N.C.)注释
});

当前可见的幻灯片的索引存储区
carousel.prop美元('index ',0);

后续幻灯片隐藏
carousel.find美元('旋转木马项目:GT(0)')隐藏();

在我们的控件中
carousel.prepend美元(美元controlsdiv.clone(真的));

前面的下一个图像
carousel.find美元('。主图像)。每个(函数(指数))
{
上一个图像
previmage = $(var $(美元指数previousslide旋转木马)。元)。找到('。主图像)Clone();

类删除
previmage.removeclass美元('main-image);

为前一个图像创建一个链接
previousanchor = $(var $,{
href:#
类:沪指图像
HTML:previmage美元
});
previousanchor.css美元('opacity ',0.2);

在前一个图像
$(这)之前(美元previousanchor);

下一个图像
VaR(nextslide图片=美元美元($轮播,指数)。元)。找到('。主图像)Clone();

类删除
nextimage.removeclass美元('main-image);

为前一个图像创建一个链接
nextanchor = $(var $,{
href:#
类:next-image
HTML:$图片
});
nextanchor.css美元('opacity ',0.2);

在下一个图像
$(这)后(nextanchor美元);
});

默认情况下启动
启动(旋转木马);
});
}

功能emergencyclose(){
/ / $('。急救。包)。追加('关闭');

$(document)。委托('。急救。关闭,点击功能(事件))
{
Event.preventDefault();
父母(紧急情况);
});
}

功能replylinks(){
$ =(,
twitterwrap美元= $(',{id:推特包});
/ / twitterwrap.append美元(美元接近);
$;
twitterwrap.append美元(美元推特);
$(文档。体)。追加($ twitterwrap);

/ * twttr.anywhere(功能(T){)
T(#推特)。TweetBox({
宽度:515,
高度:133,
缺省内容:
ontweet 功能()
{
$(#推特包),FadeOut('fast);
$(#叠加)。FadeOut();
$(#叠加)删除();
_gaq.push({ 'trackevent,'home','submitreply ','twitterreply ',5 });
/ / twitter.remove美元();
}
});
**);

$(document)。委托('。链接回复',点击',功能(事件))
{
Event.preventDefault();

(如果)!$(#叠加)){
$(文档。体)。Prepend($(' ',{id:叠加})))
/