ecshop用JS广告替换FLASH广告


1、首页广告管理-》自定义,粘下以下代码:
  1. <script type="text/javascript">
  2. /*
  3. * ECSHOP - 免费开源稳定的电子商务网店系统
  4. * 此功能代码源于腾讯官方网页开发人员分享,本人只做引用借鉴,感谢论坛热心网友的整理分享
  5. * glide.layerGlide((oEventCont,oSlider,sSingleSize,sec,fSpeed,point);
  6. * @param auto type:bolean 是否自动滑动 当值是true的时候 为自动滑动
  7. * @param oEventCont type:object 包含事件点击对象的容器
  8. * @param oSlider type:object 滑动对象
  9. * @param sSingleSize type:number 滑动对象里单个元素的尺寸(width或者height)  尺寸是有point 决定
  10. * @param second type:number 自动滑动的延迟时间  单位/秒
  11. * @param fSpeed type:float   速率 取值在0.05--1之间 当取值是1时  没有滑动效果
  12. * @param point type:string   left or top
  13. */
  14. var glide =new function(){
  15. function $id(id){return document.getElementById(id);};
  16. this.layerGlide=function(auto,oEventCont,oSlider,sSingleSize,second,fSpeed,point){
  17.   var oSubLi = $id(oEventCont).getElementsByTagName('li');
  18.   var interval,timeout,oslideRange;
  19.   var time=1;
  20.   var speed = fSpeed
  21.   var sum = oSubLi.length;
  22.   var a=0;
  23.   var delay=second * 1000;
  24.   var setValLeft=function(s){
  25.    return function(){
  26.     oslideRange = Math.abs(parseInt($id(oSlider).style[point]));
  27.     $id(oSlider).style[point] =-Math.floor(oslideRange+(parseInt(s*sSingleSize) - oslideRange)*speed) +'px';  
  28.     if(oslideRange==[(sSingleSize * s)]){
  29.      clearInterval(interval);
  30.      a=s;
  31.     }
  32.    }
  33.   };
  34.   var setValRight=function(s){
  35.    return function(){   
  36.     oslideRange = Math.abs(parseInt($id(oSlider).style[point]));      
  37.     $id(oSlider).style[point] =-Math.ceil(oslideRange+(parseInt(s*sSingleSize) - oslideRange)*speed) +'px';
  38.     if(oslideRange==[(sSingleSize * s)]){
  39.      clearInterval(interval);
  40.      a=s;
  41.     }
  42.    }
  43.   }
  44.   
  45.   function autoGlide(){
  46.    for(var c=0;c<sum;c++){oSubLi[c].className='';};
  47.    clearTimeout(interval);
  48.    if(a==(parseInt(sum)-1)){
  49.     for(var c=0;c<sum;c++){oSubLi[c].className='';};
  50.     a=0;
  51.     oSubLi[a].className="active";
  52.     interval = setInterval(setValLeft(a),time);
  53.     timeout = setTimeout(autoGlide,delay);
  54.    }else{
  55.     a++;
  56.     oSubLi[a].className="active";
  57.     interval = setInterval(setValRight(a),time);
  58.     timeout = setTimeout(autoGlide,delay);
  59.    }
  60.   }

  61.   if(auto){timeout = setTimeout(autoGlide,delay);};
  62.   for(var i=0;i<sum;i++){
  63.    oSubLi[i].onmouseover = (function(i){
  64.     return function(){
  65.      for(var c=0;c<sum;c++){oSubLi[c].className='';};
  66.      clearTimeout(timeout);
  67.      clearInterval(interval);
  68.      oSubLi[i].className="active";
  69.      if(Math.abs(parseInt($id(oSlider).style[point]))>[(sSingleSize * i)]){
  70.       interval = setInterval(setValLeft(i),time);
  71.       this.οnmοuseοut=function(){if(auto){timeout = setTimeout(autoGlide,delay);};};
  72.      }else if(Math.abs(parseInt($id(oSlider).style[point]))<[(sSingleSize * i)]){
  73.        interval = setInterval(setValRight(i),time);
  74.       this.οnmοuseοut=function(){if(auto){timeout = setTimeout(autoGlide,delay);};};
  75.      }
  76.     }
  77.    })(i)   
  78.   }
  79. }
  80. }
  81. glide.layerGlide(true,'icon_num','show_pic',534,2,0.1,'left');
  82. </script>


2、index.php:
寻找
$smarty->display('index.dwt', $cache_id);下面加:
  1. function get_flash_xml()
  2. {
  3.     $flashdb = array();
  4.     if (file_exists(ROOT_PATH . DATA_DIR . '/flash_data.xml'))
  5.     {

  6.         // 兼容v2.7.0及以前版本
  7.         if (!preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\ssort="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER))
  8.         {
  9.             preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER);
  10.         }

  11.         if (!empty($t))
  12.         {
  13.             foreach ($t as $key => $val)
  14.             {
  15.                 $val[4] = isset($val[4]) ? $val[4] : 0;
  16.                 $flashdb[] = array('src'=>$val[1],'url'=>$val[2],'text'=>$val[3],'sort'=>$val[4]);
  17.             }
  18.         }
  19.     }
  20.     return $flashdb;
  21. }

3、寻找$smarty->assign('auction_list',    index_get_auction());        // 拍卖活动,下面加上:
  1. $smarty->assign('playerdb',         get_flash_xml());       // FLASHJS广告


4、index_ad.lbi:

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  2. <!-- {if $index_ad eq 'sys'} -->
  3. <script type="text/javascript">
  4. var swf_width=534;
  5. var swf_height=200;
  6. </script>
  7. <script type="text/javascript" src="data/flashdata/{$flash_theme}/cycle_image.js"></script>
  8. <!-- {elseif $index_ad eq 'cus'} -->
  9. <!-- {if $ad.ad_type eq 0} -->
  10. <a href="{$ad.url}" target="_blank"><img src="{$ad.content}" width="534" height="200" border="0"></a>
  11. <!-- {elseif $ad.ad_type eq 1} -->
  12. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="534" height="200">
  13. <param name="movie" value="{$ad.content}" />
  14. <param name="quality" value="high" />
  15. <embed src="{$ad.content}" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="534" height="200"></embed>
  16. </object>
  17. <!-- {elseif $ad.ad_type eq 2} -->
  18. <div id="picBox">
  19. <ul id="show_pic" style="left:0;">
  20. {foreach from=$playerdb item=item key=key}
  21. <li><a href="{$item.url}" target="_blank"><img src="{$item.src}" alt="{$item.text}" /></a></li>
  22. {/foreach}
  23. </ul>
  24. <ul id="icon_num">
  25. {foreach from=$playerdb item=item name=picsitem key=key}
  26. <li <!--{if $smarty.foreach.picsitem.iteration eq 1}-->class="active" <!--{/if}-->>{$item.text}</li>
  27. {/foreach}
  28. </ul>
  29. </div>
  30. {$ad.content}
  31. <!-- {elseif $ad.ad_type eq 3} -->
  32. <a href="{$ad.url}" target="_blank">{$ad.content}</a>
  33. <!-- {/if} -->
  34. <!-- {else} -->
  35. <!-- {/if} -->


5、CSS文件


  1. /*首页轮换广告*/
  2. #picBox{width:534px; height:232px; overflow:hidden; position:relative; z-index:999;border:1px solid #0000ff}
  3. #picBox ul#show_pic{height:202px; width:3050px; position:absolute;}
  4. #picBox ul#show_pic li{ float:left; height:202px;}
  5. #picBox ul#show_pic li img{ display:block; width:534px;height:200px}
  6. #icon_num{ position:absolute; bottom:0px; left:0px;width:534px; overflow:hidden;}
  7. #icon_num li { float:left;background:#565662; font-weight:bold;color:#fff; display:block;cursor:pointer;width:135px;padding:5px;text-align:center; border-right:1px solid #fff; font-size:13px;}
  8. #icon_num li:hover,#icon_num li.active{ background:#000000; color: red;}

  9. /*end*/






注意CSS文件里面的数字534px,这是图片的宽度,要一致,注意JS代码最后一句glide.layerGlide(true,'icon_num','show_pic',534,2,0.1,'left'); 这里也有一个534。
上面代码是文字轮换,类似shop.qq.com上面的广告,如果想换成数字,在index_ad.lbi里:用{$smarty.foreach.picsitem.iteration}替换{$item.text}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ecshop的首页幻灯js版 参考 www.chinahongjiu.net 使用方法 1、将文件夹下载到 data/flashdata 中 2、修改admin文件夹中的flashplay.php 大约 870行添加 case 'Myjs';注意文件夹名称要一直,否则更新不了。这样就可以到后台调用了 样式自己调整 3、更新了js ,解决的部分bug,替换即可 var mylnk=""; var mytxt=""; var mypic=""; var s1="",s2="",s3=""; function show_flash() { mylnk=links.split("|"); mytxt=texts.split("|"); mypic=pics.split("|"); s1="",s2="",s3=""; cpn=mylnk.length; for(i=0;i<mylnk.length;i++) { s1+='<li id="Myop'+i+'" ></li>'; s2+='<li id="Myjs'+i+'" onmouseover="Myjsch(\'Myjs'+i+'\',\''+mypic[i]+'\')" onmouseout="Myjscl(\'Myjs'+i+'\')" ref="'+mypic[i]+'"><a href="'+unescape(mylnk[i])+'">'+mytxt[i]+'</a></li>'; } document.getElementById('flash_cycle_image').innerHTML = '<div class="i_topcenter">'+"\n"+'<div class="slides" >'+"\n"+'<a href="'+mylnk[0]+'" id="slide-a"><img id="slide-pic" src="'+mypic[0]+'"/></a>'+"\n"+'<ul class="slide-li" id="op">'+"\n"+s1+"\n"+'</ul><ul class="slide-li" id="slide-txt">'+"\n"+s2+'</ul>'+"\n"+'</div>'+"\n"+' </div>'; document.getElementById("Myjs0").style.background="#ff0000"; if(document.all)document.getElementById("slide-pic").filters[0].enabled=false; ss=""; timen=2000; cp=0; obj=document.getElementById("slide-pic"); cpn=document.getElementById("slide-txt").getElementsByTagName("li").length; ss= window.setInterval(function() { if(cp<cpn-1){cp++; } else{ cp=0 } if(document.all){ obj.filters.blendtrans.Apply(); obj.filters[0].enabled=false; obj.filters.blendtrans.Play(); } obj.src=document.getElementById("Myjs"+cp).getAttribute("ref"); for(j=0;j<cpn;j++){ if(j==cp){ document.getElementById("Myjs"+j).style.background="#ff0000"; document.getElementById("slide-a").href=unescape(mylnk[j]); } else { document.getElementById("Myjs"+j).style.background=""; } } },timen); //mystart(); } LoadCSS("data/flashdata/Myjs/mycss.css"); $importjs('data/flashdata/Myjs/data.js', show_flash); function Myjsch(sid,ref) { window.clearInterval(ss); if(document.all){ obj.filters.blendtrans.Apply(); obj.filters[0].enabled=false; obj.filters.blendtrans.Play(); } obj.src=ref; for(i=0;i<cpn;i++) { if("Myjs"+i==sid) { document.getElementById("Myjs"+i).style.background="#cc3333"; document.getElementById("slide-a").href=unescape(mylnk[i]); } else { document.getElementById("Myjs"+i).style.background=""; } } } function Myjscl(sid) { cp=sid.substring(4); ss= window.setInterval(function() { if(cp<cpn-1){cp++; } else{ cp=0 } if(document.all){ obj.filters.blendtrans.Apply(); obj.filters[0].enabled=false; obj.filters.blendtrans.Play(); } obj.src=document.getElementById("Myjs"+cp).getAttribute("ref"); for(j=0;j<cpn;j++){ if(j==cp){ document.getElementById("Myjs"+j).style.background="#ff0000"; document.getElementById("slide-a").href=unescape(mylnk[j]); } else { document.getElementById("Myjs"+j).style.background=""; } } },timen); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值