js练习-实现图片的幻灯片效果

1.实现效果:

2.实现主要思想:

三张图做成一个大图,点击某个链接,对链接判断从而对图片进行相应px大小的左移或者右移操作

3.代码:

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4 <title>幻灯片效果-点击某个链接某张图移动</title>
  5 <meta charset="en">
  6 <style>
  7 #slideshow {
  8 width:1200px;
  9 height:40px;
 10 position:absolute;
 11 }
 12 #preview {
 13 position:absolute;
 14 border-width:0;
 15 outline-width:0;
 16 }
 17 </style>
 18 </head>
 19 <body>
 20 <div id=‘intro‘>
 21 <a href="dazhongdianping.html">dazhongdianping</a>
 22 <a href="gewala.html">gewala</a>
 23 <a href="taobao.html">taobao</a>
 24 </div>
 25 <script type="text/javascript">
 26 function moveElement(elementID,final_x,final_y,interval) {//对图片进行移动
 27     if ( !document.getElementById)
 28     {
 29          return false;
 30     }
 31     if (!document.getElementById(elementID))
 32     {
 33         return false;
 34     }
 35     var elem=document.getElementById(elementID);//获取该图片元素
 36     if (elem.movement)
 37     {
 38         clearTimeout(elem.movement);//如果该元素有timeout的设置,则取消
 39     }
 40     if (!elem.style.left)
 41     {
 42         elem.style.left="0px";
 43     }
 44     if (!elem.style.top)
 45     {
 46         elem.style.top="0px";
 47     }
 48     var xpos=parseInt(elem.style.left);//获取当前图片的left值
 49     var ypos=parseInt(elem.style.top);
 50     if(xpos==final_x && ypos==final_y)
 51     {
 52         return true;
 53     }
 54     if(xpos<final_x)
 55     {
 56         var dist=final_x-xpos;
 57         xpos=xpos+dist;
 58     }
 59     if(xpos>final_x)
 60     {
 61         var dist=xpos-final_x;//目的x值比当前的小,例如当前xpos=0.目的为-400
 62         xpos=xpos-dist;//xpos最终为-400,相当于左移400px
 63     }
 64     if (ypos<final_y)
 65     {
 66         var dist=ypos-final_y;
 67         ypos=ypos+dist;
 68     }
 69     if(ypos>final_y)
 70     {
 71         var dist=ypos-final_x;
 72         ypos=ypos-dist
 73     }
 74     elem.style.left=xpos + "px";
 75     elem.style.top=ypos + "px";
 76     var repeat="";
 77     repeat="moveElement("+elementID+","+final_x+","+final_y+","+interval+")";
 78     elem.movement=setTimeout(repeat,interval);//5ms后对该图片元素进行移动
 79 }
 80 //准备工作,创建id="intro"的div,添加子元素<img>,为一大张图,水平包含即将移动的三张小图
 81 function  prepareSlideShow() {
 82                 if (! document.getElementsByTagName)
 83                 {
 84                 return false;
 85                 }
 86                 if (!document.getElementById)
 87                 {
 88                 return false;
 89                 }
 90                 if (!document.getElementById(‘intro‘))
 91                 {
 92                 return false;
 93                 }
 94                 var intro=document.getElementById(‘intro‘);
 95                 var slideshow=document.createElement(‘div‘);//创建滑动的div
 96                 slideshow.setAttribute("id","slideshow");
 97                 var preview=document.createElement("img");//创建滑动div内部的一张包含三个logo的图
 98                 preview.setAttribute("src","./1.jpg");//可以根据自己需要准备好图
 99                 preview.setAttribute("alt","a glimpse of  pictures");
100                 preview.setAttribute("id","preview");
101                 slideshow.appendChild(preview);
102                 intro.appendChild(slideshow);
103                 var links=intro.getElementsByTagName("a");//获取界面中的a标签。主要为三个logo对应 的标签
104                 var destination;//目的地
105                 for (var i=0;i<links.length;i++)
106                 {
107
108                     links[i].onclick=function(e){//给该a标签添加点击的处理事件
109                         e.preventDefault();//默认跳转到href的事件取消
110                         clearBackground();
111                         this.style.background="yellow";
112                         destination=this.getAttribute("href");//获取href中地址,判断移动位置
113                         if(destination.indexOf("dazhongdianping.html")!=-1){
114                         moveElement("preview",0,0,5);
115                         }
116                         if(destination.indexOf("gewala.html")!=-1) {
117                         moveElement("preview",-400,0,5);//图片向左移动400px
118                         }
119                         if(destination.indexOf("taobao.html")!=-1) {
120                         moveElement("preview",-800,0,5);//图片向左移动800px
121                         }
122                     }
123                 }
124 }
125
126 function clearBackground() {
127    var links=intro.getElementsByTagName("a");
128    for (var i=0;i<links.length;i++)
129     {
130         links[i].style.background="white";
131     }
132 }
133 prepareSlideShow();
134 </script>
135 </body>
136 </html>
时间: 2024-10-04 15:38:00

js练习-实现图片的幻灯片效果的相关文章

图片的幻灯片效果

简单实现图片的幻灯片效果 设置-->"上一页"和"下一页"按钮 NSUInteger select; //创建图片视图控件 v1=[[UIImageView alloc] initWithFrame:CGRectMake(10, 30, 400, 400)]; select=0; v1.image=arr[select]; //添加到视图 [self.view addSubview:v1]; //按钮的响应方法 -(void)butaction:(UIButt

javascript - 图片的幻灯片效果

javascript 代码: <script type="text/javascript"> function select_play() { var select_play_box = document.getElementById("select_play_box"); var aUl = select_play_box.getElementsByTagName("ul"); var aImg = aUl[0].getElemen

js鼠标滑动图片显示隐藏效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <!--声明当前页面的编码集charset=gbk中文编码gb2312,charset=utf-8国际编码--> <meta http-equi

js轮播(qq幻灯片效果)

<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>qq幻灯片轮播</title><style type="text/css"> *{margin:0

JS+css3实现图片画廊效果总结

最近学习一个在线小项目,用JS+css3实现图片画廊的效果,具体效果可以点击以下链接查看: http://1.danielcv.sinaapp.com/ 案例中主要用到一些新的CSS3效果比如:1.3D视图位置设置和子元素3D支持 -webkit-perspective:800px;/*若设置为0px则不支持3D透视功能*/ -webkit-transform-style:preserve-3d; 2.翻转为不可见时隐藏 -webkit-backface-visibility:hidden; 3

个人学习JQ插件编写成果:little酷炫的图片滑动切换效果

工作一个多月了,好久没来冒冒泡了,看了@wayong的JQ插件教程,自己编写了一个模仿拉勾网首页广告栏滑动特效的JQ插件,现在跟朋友们分享分享! 先上demo链接:http://runjs.cn/detail/gpowdhhk 快要下班了~先把代码放出来~~回家再编辑~ 这里是HTML代码: 1 <!--js酷炫图片滑动hover效果,类似拉勾网--> 2 <div class="beauty-go-outer" id="my-div"> 3

图片滑块,传送带,幻灯片效果

适合电子商务网站的图片滑块 Sequence.js 是一个非常现代的图片滑动效果,特别适合电子商务网站或者企业产品展示功能.带有图片缩率图,能够呈现全屏图片浏览效果.结合 CSS3 Transition 实现响应式的滑块效果. 效果演示     插件下载 经典的 jQuery 图片幻灯片效果 Slides 是一款精巧的 jQuery 幻灯片插件,有循环.自动播放功能和淡入淡出过渡效果,并且能够自动生成分页.利用 Slides 插件,你还可以随机播放幻灯片.它附带详细的的帮助文档和示例. 插件下载

实用图片滑块,传送带,幻灯片效果【附源码】

图片是网站功能的重要组成部分,这里集合了10个图片滑块,传送带,幻灯片效果,相信你在项目中肯定会用到.这些分享的效果大部分都是实用 jQuery 实现的,使用起来很简单.看看下面这些惊人的功能和效果,我相信你会发现一些很有用的东西. 适合电子商务网站的图片滑块 Sequence.js 是一个非常现代的图片滑动效果,特别适合电子商务网站或者企业产品展示功能.带有图片缩率图,能够呈现全屏图片浏览效果.结合 CSS3 Transition 实现响应式的滑块效果. 效果演示     插件下载 经典的 j

js+jquery+html实现在三种不通的情况下,点击图片放大的效果

js+jquery+html实现在三种不通的情况下,点击图片放大的效果. 三种情况分别是:图片的父元素宽高固定;  图片的宽高固定;  图片的父元素宽固定,高度不固定 第一种情况:图片的父元素宽高固定: 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Title</title> 7