|
查看: 1388|回复: 21
|
Air asia FAQ 部分的这个效果叫什么?
[复制链接]
|
|
|
发表于 20-4-2009 01:29 PM
|
显示全部楼层
|
应该是template+tag吧?我也不是很清楚它的“专业名称”,只是我之前用php做forum时有用过一个叫easy template system的,可以让我define 一些 tag,然后当我有赋予这些tag一些数值时,这些tag的内容就会显示出来,反之就不会显示。至于要做到这种run time的效果可可能还要配合javascript之类的吧。 |
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 02:04 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 03:32 PM
|
显示全部楼层
AIR-ASIA那个只是SHOW & HIDE罢了,
function show(id) {
if (document.getElementById) { // DOM3 = IE5, NS6
if (document.getElementById(id).style.display == "none"){
document.getElementById(id).style.display = 'block';
filter(("img"+id),'imgin');
} else {
filter(("img"+id),'imgout');
document.getElementById(id).style.display = 'none';
}
} else {
if (document.layers) {
if (document.id.display == "none"){
document.id.display = 'block';
filter(("img"+id),'imgin');
} else {
filter(("img"+id),'imgout');
document.id.display = 'none';
}
} else {
if (document.all.id.style.visibility == "none"){
document.all.id.style.display = 'block';
} else {
filter(("img"+id),'imgout');
document.all.id.style.display = 'none';
}
}
}
}
你找GOOGLE = document.getElementById(id).style.display 就会有一堆example给你了。。
你的第二个问题我看不懂,你可以解释清楚一点吗? |
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 04:26 PM
|
显示全部楼层
第一 jquery就可以了。。。
去jquery的documentation 看 effect / events的example.
第二 去看jquery thickbox。。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 05:03 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 06:33 PM
|
显示全部楼层
|
其实那个是一个java script但是要specific 名我想没有吧 |
|
|
|
|
|
|
|
|
|
|
发表于 20-4-2009 11:56 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 21-4-2009 08:55 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 21-4-2009 11:12 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 23-4-2009 11:53 AM
|
显示全部楼层
各位,我想请教一下。
我在这个网页找到我要的东西
http://jdstiles.com/java/expandcollapsesections.html
出来的结果看到是有 COLLAPSE 和 EXPAND 这个2句话。
按这2个字就可以把内容hide and 不hide了。
我想问下,如果我想把显示出来的 COLLAPSE 和 EXPAND改成 “+" 和 "-"
请问应该修改一下的那些code呢?
<script type="text/javascript">
var collapseDivs, collapseLinks;
function createDocumentStructure (tagName) {
if (document.getElementsByTagName) {
var elements = document.getElementsByTagName(tagName);
collapseDivs = new Array(elements.length);
collapseLinks = new Array(elements.length);
for (var i = 0; i < elements.length; i++) {
var element = elements;
var siblingContainer;
if (document.createElement &&
(siblingContainer = document.createElement('div')) &&
siblingContainer.style)
{
var nextSibling = element.nextSibling;
element.parentNode.insertBefore(siblingContainer, nextSibling);
var nextElement = elements[i + 1];
while (nextSibling != nextElement && nextSibling != null) {
var toMove = nextSibling;
nextSibling = nextSibling.nextSibling;
siblingContainer.appendChild(toMove);
}
siblingContainer.style.display = 'none';
collapseDivs = siblingContainer;
createCollapseLink(element, siblingContainer, i);
}
else {
// no dynamic creation of elements possible
return;
}
}
createCollapseExpandAll(elements[0]);
}
}
function createCollapseLink (element, siblingContainer, index) {
var span;
if (document.createElement && (span = document.createElement('span'))) {
span.appendChild(document.createTextNode(String.fromCharCode(160)));
var link = document.createElement('a');
link.collapseDiv = siblingContainer;
link.href = '#';
link.appendChild(document.createTextNode('expand'));
link.onclick = collapseExpandLink;
collapseLinks[index] = link;
span.appendChild(link);
element.appendChild(span);
}
}
function collapseExpandLink (evt) {
if (this.collapseDiv.style.display == '') {
this.parentNode.parentNode.nextSibling.style.display = 'none';
this.firstChild.nodeValue = 'expand';
}
else {
this.parentNode.parentNode.nextSibling.style.display = '';
this.firstChild.nodeValue = 'collapse';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
function createCollapseExpandAll (firstElement) {
var div;
if (document.createElement && (div = document.createElement('div'))) {
var link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('expand all'));
link.onclick = expandAll;
div.appendChild(link);
div.appendChild(document.createTextNode(' '));
link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('collapse all'));
link.onclick = collapseAll;
div.appendChild(link);
firstElement.parentNode.insertBefore(div, firstElement);
}
}
function expandAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = '';
collapseLinks.firstChild.nodeValue = 'collapse';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
function collapseAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = 'none';
collapseLinks.firstChild.nodeValue = 'expand';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
</script>
<script type="text/javascript">
window.onload = function (evt) {
createDocumentStructure('h1');
}
</script>
谢谢! |
|
|
|
|
|
|
|
|
|
|
发表于 23-4-2009 01:19 PM
|
显示全部楼层
function expandAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = '';
collapseLinks.firstChild.nodeValue = 'collapse';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
function collapseAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = 'none';
collapseLinks.firstChild.nodeValue = 'expand';
}
改那两个highlight的字眼就ok了
|
|
|
|
|
|
|
|
|
|
|
发表于 23-4-2009 06:11 PM
|
显示全部楼层
回复 11# sheeta 的帖子
|
air asia这个是用ajax的. 好长的code..需要做到那么复杂咩?? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 24-4-2009 09:49 AM
|
显示全部楼层
原帖由 keroro小军曹 于 23-4-2009 01:19 PM 发表 
function expandAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = '';
collapseLinks.firstChild.nodeValue = 'collapse';
}
if (evt && evt ...
谢谢,我试了。好像不可以。
弄到一次后,最后还是变回expand 和collapse.. |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 24-4-2009 09:56 AM
|
显示全部楼层
原帖由 keroro小军曹 于 23-4-2009 01:19 PM 发表 
function expandAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = '';
collapseLinks.firstChild.nodeValue = 'collapse';
}
if (evt && evt ...
好像是按了expand ALL and collapse ALL的那个部分。
下面的那些小分支才会跟着变成 + 和 -。
但是如果我在已改变的 + 和 - 那里,按一下的话,
+ - 又变成expand 和 collapse了。
如果我不要expandALL 和 collpase ALL,这个部分。
那么该怎么做呢? |
|
|
|
|
|
|
|
|
|
|
发表于 24-4-2009 10:23 AM
|
显示全部楼层
原帖由 sheeta 于 24-4-2009 09:49 AM 发表 
谢谢,我试了。好像不可以。
弄到一次后,最后还是变回expand 和collapse..
<script type="text/javascript">
var collapseDivs, collapseLinks;
function createDocumentStructure (tagName) {
if (document.getElementsByTagName) {
var elements = document.getElementsByTagName(tagName);
collapseDivs = new Array(elements.length);
collapseLinks = new Array(elements.length);
for (var i = 0; i < elements.length; i++) {
var element = elements;
var siblingContainer;
if (document.createElement &&
(siblingContainer = document.createElement('div')) &&
siblingContainer.style)
{
var nextSibling = element.nextSibling;
element.parentNode.insertBefore(siblingContainer, nextSibling);
var nextElement = elements[i + 1];
while (nextSibling != nextElement && nextSibling != null) {
var toMove = nextSibling;
nextSibling = nextSibling.nextSibling;
siblingContainer.appendChild(toMove);
}
siblingContainer.style.display = 'none';
collapseDivs = siblingContainer;
createCollapseLink(element, siblingContainer, i);
}
else {
// no dynamic creation of elements possible
return;
}
}
createCollapseExpandAll(elements[0]);
}
}
function createCollapseLink (element, siblingContainer, index) {
var span;
if (document.createElement && (span = document.createElement('span'))) {
span.appendChild(document.createTextNode(String.fromCharCode(160)));
var link = document.createElement('a');
link.collapseDiv = siblingContainer;
link.href = '#';
link.appendChild(document.createTextNode('+'));
link.onclick = collapseExpandLink;
collapseLinks[index] = link;
span.appendChild(link);
element.appendChild(span);
}
}
function collapseExpandLink (evt) {
if (this.collapseDiv.style.display == '') {
this.parentNode.parentNode.nextSibling.style.display = 'none';
this.firstChild.nodeValue = '+';
}
else {
this.parentNode.parentNode.nextSibling.style.display = '';
this.firstChild.nodeValue = '-';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
function createCollapseExpandAll (firstElement) {
var div;
if (document.createElement && (div = document.createElement('div'))) {
var link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('expand all'));
link.onclick = expandAll;
div.appendChild(link);
div.appendChild(document.createTextNode(' '));
link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('collapse all'));
link.onclick = collapseAll;
div.appendChild(link);
firstElement.parentNode.insertBefore(div, firstElement);
}
}
function expandAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = '';
collapseLinks.firstChild.nodeValue = '+';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
function collapseAll (evt) {
for (var i = 0; i < collapseDivs.length; i++) {
collapseDivs.style.display = 'none';
collapseLinks.firstChild.nodeValue = '-';
}
if (evt && evt.preventDefault) {
evt.preventDefault();
}
return false;
}
</script>
<script type="text/javascript">
window.onload = function (evt) {
createDocumentStructure('h1');
}
</script>
解决你的问题了
只要将以下这行
link.appendChild(document.createTextNode('expand'));
改去
link.appendChild(document.createTextNode('+'));
就可以了(把expand的字眼换去 +)
[ 本帖最后由 keroro小军曹 于 24-4-2009 10:25 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 24-4-2009 10:27 AM
|
显示全部楼层
原帖由 sheeta 于 24-4-2009 09:56 AM 发表 
好像是按了expand ALL and collapse ALL的那个部分。
下面的那些小分支才会跟着变成 + 和 -。
但是如果我在已改变的 + 和 - 那里,按一下的话,
+ - 又变成expand 和 collapse了。
如果我不要expandA ...
不要expandAll或collapseAll的function
只要删除以下的code就好了
function createCollapseExpandAll (firstElement) {
var div;
if (document.createElement && (div = document.createElement('div'))) {
var link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('expand all'));
link.onclick = expandAll;
div.appendChild(link);
div.appendChild(document.createTextNode(' '));
link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('collapse all'));
link.onclick = collapseAll;
div.appendChild(link);
firstElement.parentNode.insertBefore(div, firstElement);
}
} |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 24-4-2009 11:39 AM
|
显示全部楼层
我刚才也是研究到了。
但是还是非常感谢你~ |
|
|
|
|
|
|
|
|
|
|
发表于 24-4-2009 11:48 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 25-4-2009 01:00 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|