js带缩略图的图片切换效果

Posted ╭ 儛動嘚靈魂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js带缩略图的图片切换效果相关的知识,希望对你有一定的参考价值。

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>听说你也是——文字控</title>
 6 <link href="css/css.css" rel="stylesheet" type="text/css" />
 7 <SCRIPT src="js/js.js" type=text/javascript></SCRIPT>
 8 
 9 </head>
10 <body>
11 <div id="ifocus">
12  <div id="ifocus_pic">
13   <div id="ifocus_piclist" style="left:0; top:0;">
14    <ul>
15     <li><a href="#"><img src="img/01.jpg"  /></a></li>
16     <li><a href="#"><img src="img/02.jpg"  /></a></li>
17     <li><a href="#"><img src="img/03.jpg"  /></a></li>
18     <li><a href="#"><img src="img/04.jpg"  /></a></li>
19    </ul>
20   </div>
21   <div id="ifocus_opdiv"></div>
22   <div id="ifocus_tx">
23    <ul>
24     <li class="current">忧伤在我心中沉静下来,宛如降临在寂静山林中的夜色</li>
25     <li class="normal">我就像一只停泊在海滩上的小船,聆听着晚潮奏</li>
26     <li class="normal">生命是上天赋予的,我们惟有献出生命,才能真正得到它</li>
27     <li class="normal">今天大地在阳光下向我细语,用一种已被遗忘的语言</li>
28    </ul>
29   </div>
30  </div>
31  <div id="ifocus_btn">
32   <ul>
33    <li class="current"><img src="img/btn_01.jpg"  /></li>
34    <li class="normal"><img src="img/btn_02.jpg"  /></li>
35    <li class="normal"><img src="img/btn_03.jpg"  /></li>
36    <li class="normal"><img src="img/btn_04.jpg"  /></li>
37   </ul>
38  </div>
39 </div>
40 </body>
41 </html>
  1 @charset "utf-8";
  2 /* CSS Document */
  3 
  4 * 
  5 { 
  6     margin:0; 
  7     padding:0;
  8     word-break:break-all; 
  9  }
 10 body 
 11 { 
 12     background:#FFF;
 13      color:#333; 
 14      font:12px/1.6em Helvetica, Arial, sans-serif; 
 15      }
 16 h1, h2, h3, h4, h5, h6 
 17 {
 18      font-size:1em;
 19       
 20 }
 21 a 
 22 { 
 23     color:#0287CA; 
 24     text-decoration:none; }
 25 a:hover 
 26  {
 27       text-decoration:underline;
 28       }
 29 ul, li 
 30 { 
 31 list-style:none;
 32  }
 33 fieldset, img 
 34 { 
 35 border:none;
 36  }
 37 legend 
 38 { 
 39 display:none;
 40  }
 41 em, strong, cite, th {
 42      font-style:normal; 
 43      font-weight:normal;
 44       }
 45 input, textarea, select, button {
 46      font:12px Helvetica, Arial, sans-serif; 
 47      }
 48 table {
 49      border-collapse:collapse;
 50       }
 51 html {
 52      overflow:-moz-scrollbars-vertical;
 53       } 
 54 
 55 #ifocus { 
 56     width:525px;
 57     height:245px;
 58       margin:20px;
 59     border:1px solid #DEDEDE;
 60     background:#F8F8F8;
 61      }
 62  #ifocus_pic 
 63  {
 64       display:inline;
 65       position:relative; 
 66       float:left; 
 67       width:410px; 
 68       height:225px; 
 69       overflow:hidden; 
 70       margin:10px 0 0 10px; 
 71       }
 72 #ifocus_piclist { 
 73 position:absolute;
 74  }
 75 #ifocus_piclist li { 
 76      width:410px;
 77      height:225px; 
 78      overflow:hidden;
 79  }
 80 #ifocus_piclist img {
 81      width:410px;
 82       height:225px; 
 83       }
 84 #ifocus_btn { 
 85      display:inline; 
 86      float:right; 
 87      width:91px; 
 88      margin:9px 9px 0 0; 
 89      }
 90 #ifocus_btn li { 
 91 
 92      width:91px; 
 93      height:57px; 
 94      cursor:pointer; 
 95      opacity:0.5;
 96       -moz-opacity:0.5; 
 97       filter:alpha(opacity=50); 
 98       }
 99 #ifocus_btn img { 
100      width:75px;
101     height:45px;
102     margin:7px 0 0 11px; 
103     }
104 #ifocus_btn .current {
105      background: url(i/ifocus_btn_bg.gif) no-repeat; 
106      opacity:1; -moz-opacity:1; filter:alpha(opacity=100); 
107      }
108 #ifocus_opdiv { 
109       position:absolute; 
110       left:0; 
111       bottom:0; 
112       width:410px;
113        height:35px;
114         background:#000;
115          opacity:0.5; 
116          -moz-opacity:0.5; 
117          filter:alpha(opacity=50); 
118    }
119 #ifocus_tx { 
120   position:absolute; 
121   left:8px; 
122   bottom:8px; 
123   color:#FFF; }
124 #ifocus_tx .normal { 
125   display:none;
126   }
  1 function $(id) { return document.getElementById(id); }
  2 function addLoadEvent(func){
  3  var oldonload = window.onload;
  4  if (typeof window.onload != ‘function‘) {
  5   window.onload = func;
  6  } else {
  7   window.onload = function(){
  8    oldonload();
  9    func();
 10   }
 11  }
 12 }
 13 function moveElement(elementID,final_x,final_y,interval) {
 14   if (!document.getElementById) return false;
 15   if (!document.getElementById(elementID)) return false;
 16   var elem = document.getElementById(elementID);
 17   if (elem.movement) {
 18     clearTimeout(elem.movement);
 19   }
 20   if (!elem.style.left) {
 21     elem.style.left = "0px";
 22   }
 23   if (!elem.style.top) {
 24     elem.style.top = "0px";
 25   }
 26   var xpos = parseInt(elem.style.left);
 27   var ypos = parseInt(elem.style.top);
 28   if (xpos == final_x && ypos == final_y) {
 29   return true;
 30   }
 31   if (xpos < final_x) {
 32     var dist = Math.ceil((final_x - xpos)/10);
 33     xpos = xpos + dist;
 34   }
 35   if (xpos > final_x) {
 36     var dist = Math.ceil((xpos - final_x)/10);
 37     xpos = xpos - dist;
 38   }
 39   if (ypos < final_y) {
 40     var dist = Math.ceil((final_y - ypos)/10);
 41     ypos = ypos + dist;
 42   }
 43   if (ypos > final_y) {
 44     var dist = Math.ceil((ypos - final_y)/10);
 45     ypos = ypos - dist;
 46   }
 47   elem.style.left = xpos + "px";
 48   elem.style.top = ypos + "px";
 49   var repeat = "moveElement(‘"+elementID+"‘,"+final_x+","+final_y+","+interval+")";
 50   elem.movement = setTimeout(repeat,interval);
 51 }
 52 function classNormal(iFocusBtnID,iFocusTxID){
 53  var iFocusBtns= $(iFocusBtnID).getElementsByTagName(‘li‘);
 54  var iFocusTxs = $(iFocusTxID).getElementsByTagName(‘li‘);
 55  for(var i=0; i<iFocusBtns.length; i++) {
 56   iFocusBtns[i].className=‘normal‘;
 57   iFocusTxs[i].className=‘normal‘;
 58  }
 59 }
 60 function classCurrent(iFocusBtnID,iFocusTxID,n){
 61  var iFocusBtns= $(iFocusBtnID).getElementsByTagName(‘li‘);
 62  var iFocusTxs = $(iFocusTxID).getElementsByTagName(‘li‘);
 63  iFocusBtns[n].className=‘current‘;
 64  iFocusTxs[n].className=‘current‘;
 65 }
 66 function iFocusChange() {
 67  if(!$(‘ifocus‘)) return false;
 68  $(‘ifocus‘).onmouseover = function(){atuokey = true};
 69  $(‘ifocus‘).onmouseout = function(){atuokey = false};
 70  var iFocusBtns = $(‘ifocus_btn‘).getElementsByTagName(‘li‘);
 71  var listLength = iFocusBtns.length;
 72  iFocusBtns[0].onmouseover = function() {
 73   moveElement(‘ifocus_piclist‘,0,0,5);
 74   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
 75   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,0);
 76  }
 77  if (listLength>=2) {
 78   iFocusBtns[1].onmouseover = function() {
 79    moveElement(‘ifocus_piclist‘,0,-225,5);
 80    classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
 81    classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,1);
 82   }
 83  }
 84  if (listLength>=3) {
 85   iFocusBtns[2].onmouseover = function() {
 86    moveElement(‘ifocus_piclist‘,0,-450,5);
 87    classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
 88    classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,2);
 89   }
 90  }
 91  if (listLength>=4) {
 92   iFocusBtns[3].onmouseover = function() {
 93    moveElement(‘ifocus_piclist‘,0,-675,5);
 94    classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
 95    classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,3);
 96   }
 97  }
 98 }
 99 setInterval(‘autoiFocus()‘,5000);
100 var atuokey = false;
101 function autoiFocus() {
102  if(!$(‘ifocus‘)) return false;
103  if(atuokey) return false;
104  var focusBtnList = $(‘ifocus_btn‘).getElementsByTagName(‘li‘);
105  var listLength = focusBtnList.length;
106  for(var i=0; i<listLength; i++) {
107   if (focusBtnList[i].className == ‘current‘) var currentNum = i;
108  }
109  if (currentNum==0&&listLength!=1 ){
110   moveElement(‘ifocus_piclist‘,0,-225,5);
111   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
112   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,1);
113  }
114  if (currentNum==1&&listLength!=2 ){
115   moveElement(‘ifocus_piclist‘,0,-450,5);
116   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
117   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,2);
118  }
119  if (currentNum==2&&listLength!=3 ){
120   moveElement(‘ifocus_piclist‘,0,-675,5);
121   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
122   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,3);
123  }
124  if (currentNum==3 ){
125   moveElement(‘ifocus_piclist‘,0,0,5);
126   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
127   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,0);
128  }
129  if (currentNum==1&&listLength==2 ){
130   moveElement(‘ifocus_piclist‘,0,0,5);
131   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
132   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,0);
133  }
134  if (currentNum==2&&listLength==3 ){
135   moveElement(‘ifocus_piclist‘,0,0,5);
136   classNormal(‘ifocus_btn‘,‘ifocus_tx‘);
137   classCurrent(‘ifocus_btn‘,‘ifocus_tx‘,0);
138  }
139 }
140 addLoadEvent(iFocusChange);

 

以上是关于js带缩略图的图片切换效果的主要内容,如果未能解决你的问题,请参考以下文章

jQuery上下切换带缩略图的焦点图

Vue案例:图片动态切换效果

深入浅出Flask(29): H-ui前端框架的带缩略图幻灯片

带放大镜效果的jQuery LightBox图片画廊插件

js实现效果:循环轮播图

Js实现input上传图片并显示缩略图