请把轻狂志网址 www.flighty.cn 加入收藏夹,其他俱为假冒,谨防被骗!赞助请点 这里!找东东请用右边的搜索 ===>
09 2010-03

一个不错的四格幻灯 修改为js调用 适用于DEDEv5.x

作者:少轻狂 | 发布:2010-03-09 | 更新:2010-03-09 | 分类:教程 | Tutorial | 热度:

优点:此幻灯实现了js调用,在保证美观的前提下可以有效减小页面大小。

图示: 

 

演示:www.aitanmi.com

 

1、以下代码加入你要放幻灯的位置,如首页模板index.htm

<div id="ifocus">  
        <div id="ifocus_pic">  
        <div id="ifocus_piclist" style="left:0; top:0;">  
            <ul>  
            {dede:arclist flag='f' row='4'}   
            <li><a href="[field:arcurl/]" title="[field:title function='html2text(@me)'/]" target=_blank><img src="[field:litpic/]" alt="[field:title/]" /></a></li>  
            {/dede:arclist}   
            </ul>  
         </div>  
         <div id="ifocus_opdiv"></div>     
         <div id="ifocus_tx">  
         <ul>  
             {dede:arclist flag='f' limit='0,1'}   
              <li class="current">[field:title/]</li>  
             {/dede:arclist}   
             {dede:arclist flag='f' limit='1,1'}   
              <li class="normal">[field:title/]</li>  
             {/dede:arclist}   
             {dede:arclist flag='f' limit='2,1'}   
              <li class="normal">[field:title/]</li>  
             {/dede:arclist}   
             {dede:arclist flag='f' limit='3,1'}   
              <li class="normal">[field:title/]</li>  
             {/dede:arclist}   
          </ul>  
          </div>  
          </div>  
          <div id="ifocus_btn">  
          <ul>  
             {dede:arclist flag='f' limit='0,1'}   
             <li class="current"><img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" /></li>  
             {/dede:arclist}   
             {dede:arclist flag='f' limit='1,1'}   
             <li class="normal"><img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" /></li>  
             {/dede:arclist}   
             {dede:arclist flag='f'  limit='2,1'}   
             <li class="normal"><img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" /></li>  
             {/dede:arclist}   
             {dede:arclist flag='f' limit='3,1'}   
             <li class="normal"><img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" /></li>  
             {/dede:arclist}   
           </ul>  
           </div>  
           </div> 

 

2、在上述页面的<head> </head>之间加入js调用

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/templets/js/flash.js"></script>

 

3、这是js文件内容,文件名为flash.js,放在/templets/js目录下

function $(id) { return document.getElementById(id); }   
  
function addLoadEvent(func){   
    var oldonload = window.onload;   
    if (typeof window.onload != 'function') {   
        window.onload = func;   
    } else {   
        window.onload = function(){   
            oldonload();   
            func();   
        }   
    }   
}   
  
function moveElement(elementID,final_x,final_y,interval) {   
  if (!document.getElementById) return false;   
  if (!document.getElementById(elementID)) return false;   
  var elem = document.getElementById(elementID);   
  if (elem.movement) {   
    clearTimeout(elem.movement);   
  }   
  if (!elem.style.left) {   
    elem.style.left = "0px";   
  }   
  if (!elem.style.top) {   
    elem.style.top = "0px";   
  }   
  var xpos = parseInt(elem.style.left);   
  var ypos = parseInt(elem.style.top);   
  if (xpos == final_x && ypos == final_y) {   
        return true;   
  }   
  if (xpos < final_x) {   
    var dist = Math.ceil((final_x - xpos)/10);   
    xposxpos = xpos + dist;   
  }   
  if (xpos > final_x) {   
    var dist = Math.ceil((xpos - final_x)/10);   
    xposxpos = xpos - dist;   
  }   
  if (ypos < final_y) {   
    var dist = Math.ceil((final_y - ypos)/10);   
    yposypos = ypos + dist;   
  }   
  if (ypos > final_y) {   
    var dist = Math.ceil((ypos - final_y)/10);   
    yposypos = ypos - dist;   
  }   
  elem.style.left = xpos + "px";   
  elem.style.top = ypos + "px";   
  var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";   
  elem.movement = setTimeout(repeat,interval);   
}   
  
function classNormal(iFocusBtnID,iFocusTxID){   
    var iFocusBtns= $(iFocusBtnID).getElementsByTagName('li');   
    var iFocusTxs = $(iFocusTxID).getElementsByTagName('li');   
    for(var i=0; i<iFocusBtns.length; i++) {   
        iFocusBtns[i].className='normal';   
        iFocusTxs[i].className='normal';   
    }   
}   
  
function classCurrent(iFocusBtnID,iFocusTxID,n){   
    var iFocusBtns= $(iFocusBtnID).getElementsByTagName('li');   
    var iFocusTxs = $(iFocusTxID).getElementsByTagName('li');   
    iFocusBtns[n].className='current';   
    iFocusTxs[n].className='current';   
}   
  
function iFocusChange() {   
    if(!$('ifocus')) return false;   
    $('ifocus').onmouseover = function(){atuokey = true};   
    $('ifocus').onmouseout = function(){atuokey = false};   
    var iFocusBtns = $('ifocus_btn').getElementsByTagName('li');   
    var listLength = iFocusBtns.length;   
    iFocusBtns[0].onmouseover = function() {   
        moveElement('ifocus_piclist',0,0,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',0);   
    }   
    if (listLength>=2) {   
        iFocusBtns[1].onmouseover = function() {   
            moveElement('ifocus_piclist',0,-225,5);   
            classNormal('ifocus_btn','ifocus_tx');   
            classCurrent('ifocus_btn','ifocus_tx',1);   
        }   
    }   
    if (listLength>=3) {   
        iFocusBtns[2].onmouseover = function() {   
            moveElement('ifocus_piclist',0,-450,5);   
            classNormal('ifocus_btn','ifocus_tx');   
            classCurrent('ifocus_btn','ifocus_tx',2);   
        }   
    }   
    if (listLength>=4) {   
        iFocusBtns[3].onmouseover = function() {   
            moveElement('ifocus_piclist',0,-675,5);   
            classNormal('ifocus_btn','ifocus_tx');   
            classCurrent('ifocus_btn','ifocus_tx',3);   
        }   
    }   
}   
  
setInterval('autoiFocus()',5000);   
var atuokey = false;   
function autoiFocus() {   
    if(!$('ifocus')) return false;   
    if(atuokey) return false;   
    var focusBtnList = $('ifocus_btn').getElementsByTagName('li');   
    var listLength = focusBtnList.length;   
    for(var i=0; i<listLength; i++) {   
        if (focusBtnList[i].className == 'current') var currentNum = i;   
    }   
    if (currentNum==0&&listLength!=1 ){   
        moveElement('ifocus_piclist',0,-225,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',1);   
    }   
    if (currentNum==1&&listLength!=2 ){   
        moveElement('ifocus_piclist',0,-450,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',2);   
    }   
    if (currentNum==2&&listLength!=3 ){   
        moveElement('ifocus_piclist',0,-675,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',3);   
    }   
    if (currentNum==3 ){   
        moveElement('ifocus_piclist',0,0,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',0);   
    }   
    if (currentNum==1&listLength==2 ){   
        moveElement('ifocus_piclist',0,0,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',0);   
    }   
    if (currentNum==2&listLength==3 ){   
        moveElement('ifocus_piclist',0,0,5);   
        classNormal('ifocus_btn','ifocus_tx');   
        classCurrent('ifocus_btn','ifocus_tx',0);   
    }   
}   
addLoadEvent(iFocusChange); 

 

4、这是CSS文件代码,放在CSS文件最后(默认为templets/style/dedecms.css,如果你的不是默认模板,请自行加入相应的CSS文件中)

/* iFocus style */  
#ifocus { width:515px; height:245px; margin:0px; border:1px solid #DEDEDE; background:#F8F8F8; }   
#ifocus_pic { display:inline; position:relative; float:left; width:400px; height:225px; overflow:hidden; margin:10px 0 0 10px; }   
#ifocus_piclist { position:absolute; }   
#ifocus_piclist li { width:400px; height:225px; overflow:hidden; }   
#ifocus_piclist img { width:400px; height:225px; }   
#ifocus_btn { display:inline; float:rightright; width:91px; margin:9px 9px 0 0; }   
#ifocus_btn li { width:91px; height:57px; cursor:pointer; opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=50); }   
#ifocus_btn img { width:75px; height:45px; margin:7px 0 0 11px; }   
#ifocus_btn .current { background: url(../images/flash.gif) no-repeat; opacity:1; -moz-opacity:1; filter:alpha(opacity=100); }   
#ifocus_opdiv { position:absolute; left:0; bottombottom:0; width:410px; height:35px; background:#000; opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=50); }   
#ifocus_tx { position:absolute; left:8px; bottombottom:8px; color:#FFF; }   
#ifocus_tx .normal { display:none; }

 

5、把这个图片存到templets/images文件夹下,文件名为flash.gif

 

6、把有图片的文章挑4个设为幻灯,生成html,看一下效果吧!

标签:dede(33)幻灯(2)