JavaScript打造无缝切换

原文摘自我的前端博客,欢迎大家来访问

http://hacke2.github.io/

起因

一年前写管理学院的时候,那时候做首页有一个幻灯片,由于之前没交流好,CL写的静态页面幻灯片图片是在背景里,让我用jq写, 当时就感觉特别啃爹,图片写在了css里。。好坑爹,自己又懒得改,只能硬着头皮用jq写,一堆临时变量,如num++,各种奇葩,最后加了 个jq淡隐淡出的效果,就交差了,,代码如下:

 
function trim(s) {

return s.replace(/^\s*/, "").replace(/\s*$/, "");

}

 

/**

* 限制字数,第一个传要限制的className,第二个传限制的字数

* @author: wxl

**/

function limitTextNum(className, num) {

var limitNum = num;

$("."+className+"").each(function () {

var curText = $(this).text();

var curLength = $(this).text().length;

if (curLength > num) {

curText = $(this).text(curText.substring(0, limitNum) + ‘...‘);

}

});

}

 

/**

* 菜单折叠

* @author: wxl

**/

function initMenu() {

$(".listArea").hide();

$(‘.listArea:first‘).show();

$(‘#dynamic_list .list_title‘).click(

function () {

var checkElement = $(this).next();

if ((checkElement.is(‘div‘)) && (checkElement.is(‘:visible‘))) {

return false;

}

if ((checkElement.is(‘div‘)) && (!checkElement.is(‘:visible‘))) {

$(this).children("div").children("a").css("background", "url(/Content/Images/Home/ico.PNG) no-repeat left center");

$(‘.listArea:visible‘).prev("div").children("div").children("a").css("background", "url(/Content/Images/Home/ico2.PNG) no-repeat left center");

$(‘.listArea:visible‘).slideUp(‘fast‘);

checkElement.slideDown(‘fast‘);

return false;

}

}

);

}

 

/**

*图片翻滚

*@author wxl

**/

function rollPictures() {

var t  = 0, count;

var rollPics = $("#pictureArea div").slice(0, index.rollNewsPicsLength);

count = rollPics.length - 1;

rollPics.not(‘:first‘).hide();

$("#pageStyle .pageUp").click(function () {

t--;

if (t < 0) t = count;

if (t == count) {

$("#pictureArea div").eq(0).hide();

$("#pictureArea div").eq(t).fadeIn("slow");

}

else {

$("#pictureArea div").eq(t + 1).hide();

$("#pictureArea div").eq(t).fadeIn("slow");

}

 

})

$("#pageStyle .pageDown").click(function () {

t++;

if (t > count) t = 0;

$("#pictureArea div").eq(t).fadeIn("slow");

if (t == 0) {

$("#pictureArea div").eq(count).hide();

} else {

$("#pictureArea div").eq(t - 1).hide();

}

 

})

//设一个定时器,每三秒翻滚图片

setInterval(function () {

$("#pageStyle .pageDown").click();

}, 5000)

}

view rawcommon.js hosted
with ? by GitHub

这几天一个前端qq群主分享了一个东西说平时可以练练手,我没有做,可是看到他说,群里面有些人小东西不屑做,稍微大点有不会做 我当时就感觉说我。。刚才写了一下,与大家分享

思路

关键一点就是克隆,而且是深克隆,obj.clone(true);这样就能克服该节点的所有子节点。之所以选择克隆,是因为直接删除太突兀了。

一般无缝切换的幻灯片是这样做的

1.点击前一个:将最开始的节点克隆到最后一个节点后面,然后整体向前移,并且删除掉第一个元素

2.点击后一个:将最后节点克隆到最前面的节点钱,然后整体向后移,并且删除掉最后一个元素

动画效果用的智能社的动画脚本

代码

代码在github上,有兴趣的看下:

JavaScript打造无缝切换

查看完整DEMO

end

J

时间: 2024-10-16 10:34:39

JavaScript打造无缝切换的相关文章

javascript焦点图之缓冲滚动无缝切换

在用于实现无缝切换四张图,所以设置了6个图片就是 4,0,1,2,3,4,0 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * { margin: 0; padding: 0; font-size: 12px; } #ptoDiv

javascript实例学习之八——无缝切换效果

无缝切换在网站的很多地方都有涉及,比如轮播图等. 基本思路: 1)将可视窗当前的元素复制,依次添加为ul中的子元素 2)改变ul整体的left取值(负的窗口值),动画缓动至想要的位置 3)将原视窗(已被复制)的各个li删除 4)将ul的left取值重新调整为0 实现的html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti

js_sl 无缝切换

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> *{ margin:0; padding:0;} li{ list-style:none;} #div1{ width:350px; height:60px; border:1px #000000 solid; position:relati

【DATAGUARD】物理dg配置客户端无缝切换--Fast-Start Failover的配置

[DATAGUARD]物理dg配置客户端无缝切换--Fast-Start Failover的配置 一.2.2  实验环境介绍 项目 主库 dg库 db 类型 单实例 单实例 db version 11.2.0.3 11.2.0.3 db 存储 FS type FS type ORACLE_SID oradg11g oradgphy db_name oradg11g oradg11g 主机IP地址: 192.168.59.130 192.168.59.130 OS版本及kernel版本 RHEL6

几种无缝切换的实现方法

一.五选四 共有5张图片,显示4张,实现无缝切换 每次切换时将前4张克隆加到ul末尾,切换后删除前4个,注意要每次删除第一个,删除4次 二.循环轮播图 arr.push(arr[0]);arr.shift(arr[0]); 三.华为轮播图一共有多张,显示1张利用position属性,每次循环到最后,将第一张图片position改为relative,挪到ul末尾,切换后复原 1.不管屏幕大小,图片始终充满屏幕宽度,图片居中,利用下述resize()方法 2.走到最后,将第一个元素position:

【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误

[DATAGUARD]物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle DataGuard 之客户端TAF 配置 ④ 使用DGMGRL 来管理数据库

【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置

[DATAGUARD]物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle DataGuard 之客户端TAF 配置 ④ 使用DGMGRL 来管理数据库

【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

[DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle DataGuard 之客户端TAF 配置 ④ 使用DGMGRL 来管理数据库 ⑤

【DATAGUARD】物理dg配置客户端无缝切换--Data Guard Broker 的配置(1)

[DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 一.2.2  实验环境介绍 项目 主库 dg库 db 类型 单实例 单实例 db version 11.2.0.3 11.2.0.3 db 存储 FS type FS type ORACLE_SID oradg11g oradgphy db_name oradg11g oradg11g 主机IP地址: 192.168.59.130 192.168.59.130 OS版本及kernel版本