js实现相册翻页,滚动,切换,轮播功能

开发 前端
我们在做web开发的时候,前台的效果要求是很高的,因为对于不懂程序的用户来说,前台的视觉冲击,无疑是对我们产品的第一印象。

我们在做web开发的时候,前台的效果要求是很高的,因为对于不懂程序的用户来说,前台的视觉冲击,无疑是对我们产品的***印象。

在完成web图片各种功能上,很多框架有很绚丽的效果,但今天我们来看看用原生的js如何简单的实现这些功能。欢迎大家交流指正。

js实现相册翻页,滚动,切换,轮播功能

 1.相册左右点击翻页功能

实现步骤

1.需要一个HTML标签img,添加一张图片。

2.然后需要添加一个js事件onmouseover,使每次鼠标移到图片上指针都会随左右发生变化。

3.***需要添加一个点击事件,根据鼠标的在左边还是右边,判断是应该上一页还是下一页翻动相册。

HTML代码:

  1. <body> 
  2.         <div> 
  3.             <img src="img/pic1.jpg" id = "bigimg" onmouseover="upNext(this)" width="300" height="300"> 
  4.         </div> 
  5. </body> 

JS代码: 

  1. <script type="text/javascript"
  2.  
  3.             var arr = new Array(); 
  4.             arr[0] = "1.jpg"
  5.             arr[1] = "2.jpg"
  6.             arr[2] = "3.jpg"
  7.             arr[3] = "4.jpg"
  8.             arr[4] = "5.jpg"
  9.             var index = 0; 
  10.             function upNext(bigimg) { 
  11.             var action; 
  12.             var width = bigimg.width; 
  13.             var height = bigimg.height; 
  14.             bigimg.onmousemove = function () { 
  15.                 if (window.event.offsetX < width / 2) { 
  16.                     action = 'left' 
  17.                     bigimg.style.cursor = 'url(img/arr_left.cur),auto';//将鼠标指针更换成向左指向箭头 
  18.                 }  
  19.                 else { 
  20.                     bigimg.style.cursor = 'url(img/arr_right.cur),auto'
  21.                     action = 'right'
  22.                 } 
  23.             } 
  24.             bigimg.onmouseup = function () { 
  25.                 if (action == 'left') { 
  26.                    if(index==0) 
  27.                        return ; 
  28.                    else 
  29.                        index--; 
  30.                 } 
  31.                 else { 
  32.                   if(index == 4) 
  33.                     return
  34.                   else 
  35.                       index ++ ; 
  36.                 } 
  37.                 this.src = 'img/pic'+arr[index]; 
  38.             } 
  39.         } 
  40.         </script> 

 !!此处需要注意,有些浏览器并不兼容event事件。

#p#

2.自动切换功能

实现步骤:

1.首先还是需要一个img标签,显示一张图片。

2.需要一个数组,记录每张图片的路径,设置,跳转间隔时间。

3.添加一个js方法,根据数组下标,更改图片src。利用setInterval方法循环执行。

HTML:

  1. <body> 
  2.         <img src="img/pic1.jpg" width="427" height="219" id="showpic" /> 
  3. </body> 

js:

 
  1. <script language =javascript > 
  2.         var curIndex=0; 
  3.         //时间间隔 单位毫秒 
  4.         var timeInterval=3000; 
  5.         var arr=new Array(); 
  6.         arr[0]="1.jpg"
  7.         arr[1]="2.jpg"
  8.         arr[2]="3.jpg"
  9.         arr[3]="4.jpg"
  10.         arr[4]="5.jpg"
  11.         setInterval(changeImg,timeInterval);//每隔timeInterval时间,执行一次changeImg事件 
  12.         function changeImg() 
  13.         { 
  14.             var obj=document.getElementById("showpic"); 
  15.             if (curIndex==arr.length-1) 
  16.             { 
  17.                 curIndex=0; 
  18.             } 
  19.             else 
  20.             { 
  21.                 curIndex+=1; 
  22.             } 
  23.             obj.src="img/pic"+arr[curIndex]; 
  24.         } 
  25.     </script> 
 

 #p#

3.循环滚动功能(右移)

 实现步骤:

1.我们需要对html进行布局,将所有要显示的图片都放在一行以内。此处注意:行内所有图片的宽度需大于外部容器的大小,否则不能达到预想效果。

2.设置滚动事件,宽度,滚动方向。此处注意,滚动速度,数字越大,滚动的越慢(每间隔一段时间执行,数字越大间隔时间越长,滚动速度越慢);滚动的方向其实就是if else中的

简单的逻辑判断以及自增自减实现的。

3.第三部分,我们需要添加js事件,让鼠标放到滚动图片上时,时滚动终止;鼠标离开时,继续滚动。

HTML:

!!此处添加需要展示的所有图片。布局不仅限于table标签,多种html标签都能实现。

 
  1. <div id=demo style="overflow:hidden;width: 300px; height: 100px;"
  2.             <table> 
  3.                 <tr> 
  4.                     <td id=demo1 valign=top> 
  5.                         <table align=left cellpadding=0 cellspace=0 border=0> 
  6.                             <tr> 
  7.                                 <td> 
  8.                                     <img src="img/jg.jpg"
  9.                                 </td> 
  10.                                 <td> 
  11.                                     <img src="img/fxz.jpg"
  12.                                 </td> 
  13.                                 <td> 
  14.                                     <img src="img/gh.jpg"
  15.                                 </td> 
  16.                                 <td> 
  17.                                     <img src="img/yj.jpg"
  18.                                 </td> 
  19.                                 <td> 
  20.                                     <img src="img/zzh.jpg"
  21.                                 </td> 
  22.                             </tr> 
  23.                         </table> 
  24.                     </td> 
  25.                     <td id=demo2 valign=top ><td> 
  26.                 </tr> 
  27.             </table> 
  28.         </div> 
 

js:

 
  1. <script>  
  2.             var speed=30 ;//设置滚动速度 
  3.             demo2.innerHTML=demo1.innerHTML ; 
  4.             demo.scrollLeft=demo.scrollWidth ; 
  5.             function Marquee(){  
  6.                 if(demo.scrollLeft<=0)  
  7.                 demo.scrollLeft+=demo2.offsetWidth;  
  8.                 else{  
  9.                     demo.scrollLeft--;  
  10.                 }  
  11.             }  
  12.             var MyMar=setInterval(Marquee,speed) ; 
  13.             demo.onmouseover=function() {clearInterval(MyMar);}  
  14.             demo.onmouseout=function() {MyMar=setInterval(Marquee,speed);}  
  15. </script> 
 

#p#

 4.相册简单轮播实现

实现步骤:

1.首先对html进行图片布局,使得上面一个有一个大的img标签,下面排列若干个小的img标签。

2.我们需要添加两个js事件,分别在鼠标移到小img标签和移出小img标签时产生效果。

3.在鼠标移到小img标签上时,使大的img图片src变化,并且使小img标签的border属性值颜色发生改变,在鼠标移出时颜色改变回来。

!!此处注意,大家需要使用简单的css进行页面的排版与装饰,也可以躲在css上下些功夫,使页面更漂亮。

HTML:

 
  1. <body> 
  2.         <div><img src="img/pic1.jpg" width="320" height="300" id="bigimg"></div> 
  3.         <div> 
  4.             <ul> 
  5.                 <li><img src="img/pic1.jpg" width="60" height="60" onmouseover="rep(this);" onmouseout="recover(this)"></li> 
  6.                 <li><img src="img/pic2.jpg" width="60" height="60" onmouseover="rep(this);" onmouseout="recover(this)"></li> 
  7.                 <li><img src="img/pic3.jpg" width="60" height="60" onmouseover="rep(this);" onmouseout="recover(this)"></li> 
  8.                 <li><img src="img/pic4.jpg" width="60" height="60" onmouseover="rep(this);" onmouseout="recover(this)"></li> 
  9.                 <li><img src="img/pic5.jpg" width="60" height="60" onmouseover="rep(this);" onmouseout="recover(this)"></li> 
  10.             </ul> 
  11.         </div> 
  12. </body> 
 

js:

潮平帆远,击水三千
 
责任编辑:王雪燕
相关推荐

2018-04-16 14:39:10

Vue轮播切换

2020-06-15 18:00:36

transformbannerJavascript

2021-06-18 10:12:09

JS代码前端

2009-06-16 10:44:50

JS代码折叠Visual Stud

2012-05-04 14:16:41

JavaScript

2016-12-01 09:24:56

Android

2022-06-16 09:55:58

css轮播图

2021-08-27 08:38:10

CSS 技巧 resize

2010-08-18 09:03:46

jQueryJSONTrimpath

2009-09-08 14:21:38

CheckBox翻页选

2011-09-02 10:14:10

JQuery滚动Xslider

2015-09-30 09:21:55

ios相册moment功能优化

2022-03-07 14:58:10

ArkUIJS FAJava

2023-08-08 14:31:42

轮播图鸿蒙

2015-12-15 15:31:08

Chrome平滑滚动浏览器

2022-07-28 14:26:11

AI作诗应用开发

2024-03-20 09:40:27

动画技巧CSS逐帧动画

2013-04-02 13:04:07

ListView平滑滚

2011-09-02 10:03:40

jQuery滚动图片

2024-01-22 09:28:23

CSS前端滚动驱动
点赞
收藏

51CTO技术栈公众号