仿京东商城首页商品分类JS特效,只适用GBK版本的Genuine模板,新手修改,还望海涵

2016-07-07 16:02 来源:www.chinab4c.com 作者:ecshop专家



此代码只循环到3级分类,使用前请先备份library文件夹下的category_tree.lbi,以防万一

QQ截图未命名.jpg

备份完后用代码编辑工具打开category_tree.lbi,用以下代码替换所有源代码。

注意!数据库用户名、密码、数据表等参数请自行填写!

  1. <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  2. <?php
  3. $connect = mysql_connect ( 'localhost', '用户名', '密码' );
  4. mysql_select_db ( '数据库名', $connect );
  5. mysql_query ( "set names 'GBK'" );

  6. $sql = "SELECT * FROM `ecs_category` WHERE `parent_id` =0 ORDER BY `ecs_category`.`sort_order`";

  7. $result = mysql_query ( $sql );


  8. if ($result) {
  9. while ( $all = mysql_fetch_array ( $result ) ) {
  10. $tree_id_one[] = $all['cat_id'];
  11. $tree_name_one[] = $all['cat_name'];
  12. }
  13. }

  14. $num1=count($tree_name_one);

  15. //print_r($tree_name_one);

  16. for($i=0;$i<$num1;$i++){

  17. $sql = "SELECT * FROM `ecs_category` WHERE `parent_id` =$tree_id_one[$i] ORDER BY `ecs_category`.`sort_order`";

  18. $result = mysql_query ( $sql );

  19. if ($result) {
  20. while ( $all = mysql_fetch_array ( $result ) ) {
  21. $tree_id_two[$i][] = $all['cat_id'];
  22. $tree_name_two[$i][] = $all['cat_name'];
  23. }
  24. }

  25. }
  26. //print_r($tree_name_two);


  27. for($i=0;$i<$num1;$i++){

  28. $num=count($tree_name_two[$i]);

  29. for($m=0;$m<$num;$m++){

  30. $sql = "SELECT * FROM `ecs_category` WHERE `parent_id` =".$tree_id_two[$i][$m]." ORDER BY `ecs_category`.`sort_order`";

  31. $result = mysql_query ( $sql );

  32. if ($result) {
  33. while ( $all = mysql_fetch_array ( $result ) ) {
  34. $tree_id_three[$i][$m][] = $all['cat_id'];
  35. $tree_name_three[$i][$m][] = $all['cat_name'];
  36. }
  37. }

  38. }

  39. }
  40. mysql_close($connect);
  41. //print_r($tree_name_three);

  42. ?>
  43. <script>
  44. function change(a){
  45. var div=a.mark-1;
  46. var div="f"+div;
  47. var div2="f"+a.mark;
  48. var vis="v"+a.mark;
  49. if(a.mark=='1'){
  50. document.getElementById(div2).className="change";
  51. document.getElementById(vis).className="vis2";
  52. }
  53. else{
  54. document.getElementById(div).className="fenlei2";
  55. document.getElementById(div2).className="change";
  56. document.getElementById(vis).className="vis2";
  57. }
  58. }
  59. function toback(a){
  60. var div=a.mark-1;
  61. var div="f"+div;
  62. var div2="f"+a.mark;
  63. var vis="v"+a.mark;
  64. if(a.mark=='1'){
  65. document.getElementById(div2).className="fenlei";
  66. document.getElementById(vis).className="vis1";
  67. }
  68. else{
  69. document.getElementById(div).className="fenlei";
  70. document.getElementById(div2).className="fenlei";
  71. document.getElementById(vis).className="vis1";
  72. }
  73. }
  74. </script>
  75. <h1 class="cagegoryTit">{$lang.goods_category}<a href="catalog.php" class="more">{$lang.all_category}</a></h1>
  76. <div class="cagegoryCon clearfix" style="font-size:14px;">
  77. <?

  78. for($i=0;$i<$num1;$i++){

  79. $i2=$i+1;

  80. echo '<div class="fenlei" onmouseover="change(this);" onMouseOut="toback(this);" mark="'.$i2.'" id="f'.$i2.'"><a href="category.php?id='.$tree_id_one[$i].'">'.$tree_name_one[$i]."</a></div>";

  81. }

  82. ?>
  83. </div>

  84. <?

  85. for($i=0;$i<$num1;$i++){

  86. $i2=$i+1;

  87. ?>

  88. <div class="vis1" onmouseover="change(this);" onMouseOut="toback(this);" mark="<?=$i2?>" id="v<?=$i2?>">
  89. <table width="100%" border="0">
  90. <tr>
  91. <td height="400" align="left" valign="top">
  92. <table width="100%" border="0">
  93. <?

  94. $num=count($tree_name_two[$i]);

  95. if($num!=0){

  96. for($m=0;$m<$num;$m++){

  97. ?>
  98. <tr>
  99. <td width="100%" style="padding:5px;">
  100. <table border="0">
  101. <tr>
  102. <td valign="top" width="80"><b><a href="category.php?id=<?=$tree_id_two[$i][$m]?>"><?=$tree_name_two[$i][$m]?></a></td>
  103. <td align="left">
  104. <?

  105. $num2=count($tree_name_three[$i][$m]);

  106. for($n=0;$n<$num2;$n++){

  107. echo '<div class="fenlei_two"> <a href="category.php?id='.$tree_id_three[$i][$m][$n].'">'.$tree_name_three[$i][$m][$n].'</a> |</div>';

  108. }

  109. ?>



  110. </td>
  111. </tr>
  112. </table>
  113. </td>
  114. </tr>

  115. <?
  116. }
  117. }
  118. ?>
  119. </table>

  120. </td>
  121. </tr>
  122. </table>
  123. </div>

  124. <?
  125. }
  126. ?>


  127. <div class="cagegoryBnt blank"></div>
复制代码


打开Genuine模板内的样式文件style.css,将以下css样式插入到最后

  1. .fenlei{
  2. border:none; border-bottom:1px solid #fde6d2; z-index:99; padding:5px; margin-top:5px; background:#ffffff;
  3. }
  4. .fenlei2{
  5. border:none; z-index:99; padding:5px; margin-top:5px; background:#ffffff;
  6. }
  7. .change{
  8. border:1px solid #cc3300; border-right:none; z-index:99; padding:5px; margin-top:5px; position:relative; background:#fef8ef; width:165px;
  9. }
  10. .vis1{
  11. width:475px; border:1px solid #cc3300; background:#fff9ef; position:absolute; margin-top:-400px; margin-left:192px; z-index:98; visibility:hidden; text-align:center;
  12. }
  13. .vis2{
  14. width:475px; border:1px solid #cc3300; background:#fff9ef; position:absolute; margin-top:-400px; margin-left:192px; z-index:98; visibility:visible; text-align:center;
  15. }
  16. .fenlei_two{
  17. white-space:nowrap; float:left;
  18. }
复制代码



以上代码是基于Genuine模板改的,若想适用于其他模板,请自行修改代码。。。

回答:
UTF 版本使用后有乱码。已经修改了上面的 GBK

怎么按照 你的办法修改后 全是问号

能行吗?

UTF 的怎么改?楼主有演示站看下吗?

好东西先记录下

好东西,尝试对比修改下。



哎 非常郁闷

怎么转换成UTF-8的啊?
全是问号,晕

乱码是数据取出的编码不对.

请问放进去 怎么不显示呢

根本不显示.................

用其它的模板,能行吗

在ie6下有效果严重变形,在火狐下没反应。