这是播放器主要实现简单的图片展示效果,可以控制默认显示的图片,可以修改图片切换的时间间隔。

样式文件 CssFile.css:

body,ul{

margin:0;

padding:0;

}

li{

list-style:none;

}

img{

border:none;

display:block;

}

.slide-wp{

width:500px;

height:300px;

overflow:hidden;

position:absolute;

left:50%;

top:20%;

margin-left:-250px;

margin-top:-60px;

}

.nav-wp{

position:absolute;

background:#ccc;

top:43%;

margin-top:170px;

left:50%;

margin-left:-100px;

border-radius:4px;

-moz-border-radius:4px;

-webkit-border-radius:4px;

padding:0 20px 6px 10px;

_padding:0 20px 2px 10px;

}

.nav li{

float:left;

margin-left:10px;

font-size:20px;

font-weight:bold;

font-family:tahoma;

color:#22739e;

cursor:pointer;

height:18px;

}

.nav li.cur{

color:#ff7a00;

}

.next{

font-family:"微软雅黑"; font-size:13px; font-weight:bold;

position:absolute;

top:1px;

left:160px;

padding:4px 8px;

color:#333;

background:#ccc;

height:20px;

border-radius:4px;

-moz-border-radius:4px;

-webkit-border-radius:4px;

cursor:pointer;

width: 62px;

}

JS文件 ImageShow.js:

var HR = {

$: function (i) { return document.getElementById(i) },

$$: function (c, p) { return p.getElementsByTagName(c) },

ce: function (i, t) {

var o = document.createElement(i);

t.appendChild(o);

return o;

}

};

HR.slider3D = function () {

var init = function (o) {

this.o = o;

var wp = HR.$(o.id), ul = HR.$$('ul', wp)[0], li = this.li = HR.$$('li', ul);

this.l = li.length;

this.w = wp.offsetWidth;

this.h = wp.offsetHeight;

this.at = o.auto ? o.auto : 4;

var con = this.con = HR.ce('div', wp);

con.style.cssText = 'position:absolute;left:0;top:0;width:' + this.w + 'px;height:' + this.h + 'px';

ul.style['display'] = 'none';

this.a1 = HR.ce('a', con);

this.a1.style.cssText = 'position:absolute;left:0;top:0;overflow:hidden';

this.a2 = HR.ce('a', con);

this.a2.style.cssText = 'position:absolute;top:0;right:0;overflow:hidden';

this.a1.innerHTML = this.a2.innerHTML = '<img alt="" />';

this.img = HR.$$('img', ul);

this.s = o.maskSize ? o.maskSize : 5;

this.mask11 = HR.ce('span', this.a1);

this.mask12 = HR.ce('span', this.a1);

this.mask21 = HR.ce('span', this.a2);

this.mask22 = HR.ce('span', this.a2);

document.getElementById("mask-slider").style.display = "";

this.pos(0);     //设置默认显示的图片索引

}

init.prototype = {

pos: function (i) {

clearInterval(this.li[i].a); clearInterval(this.au); this.au = 0; this.cur = i;

var navli = HR.$$('li', HR.$(this.o.navId));

for (var j = 0; j < navli.length; j++) {

navli[j].className = i == j ? 'cur' : '';

}

var img1 = HR.$$('img', this.a1)[0], img2 = HR.$$('img', this.a2)[0], _this = this;

img1.src = i == 0 ? this.img[this.l - 1].src : this.img[i - 1].src;

img1.width = this.w;

img2.src = this.img[i].src;

img2.width = 0;

img1.height = img2.height = this.h;

this.mask11.style.cssText = 'position:absolute;left:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black transparent transparent black;border-style:solid dashed dashed solid;border-width:0 ' + this.w / 2 + 'px';

this.mask12.style.cssText = 'position:absolute;left:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent transparent black black;border-style:dashed dashed solid solid;border-width:0 ' + this.w / 2 + 'px';

this.mask21.style.cssText = 'position:absolute;right:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black black transparent transparent;border-style:solid solid dashed dashed;border-width:0px';

this.mask22.style.cssText = 'position:absolute;right:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent black black transparent;border-style:dashed solid solid dashed;border-width:0px';

this.li[i].a = setInterval(function () { _this.anim(i) }, 20);

},

anim: function (i) {

var w1 = HR.$$('img', this.a1)[0].width, w2 = HR.$$('img', this.a2)[0].width;

if (w2 == this.w) {

clearInterval(this.li[i].a);

HR.$$('img', this.a1)[0].width = 0;

HR.$$('img', this.a2)[0].width = this.w;

this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = '0px';

this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = this.h / this.s + 'px';

this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = this.w / 2 + 'px';

this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = '0px';

} else {

HR.$$('img', this.a1)[0].width -= Math.ceil((this.w - w2) * .13);

HR.$$('img', this.a2)[0].width += Math.ceil((this.w - w2) * .13);

this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = HR.$$('img', this.a1)[0].width / 2 + 'px';

this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = HR.$$('img', this.a2)[0].width * this.h / (this.s * this.w) + 'px';

this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = HR.$$('img', this.a2)[0].width / 2 + 'px';

this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = this.h / this.s - HR.$$('img', this.a2)[0].width * this.h / (this.s * this.w) + 'px';

if (!this.au) this.auto();

}

},

auto: function () {

var _this = this;

//alert(this.cur);

if (this.cur == 5) {

document.getElementById("mask-slider").style.display = "";

this.stop();

}

else {

document.getElementById("mask-slider").style.display = "none";

this.au = setInterval(function () { _this.move() }, this.at * 1000);

}

},

move: function () {

var n = this.cur == this.l - 1 ? 0 : this.cur + 1;

this.pos(n);

},

stop: function () {

clearInterval(this.au);

}

}

return init;

}();

var mySlider = new HR.slider3D({

id: 'slider',         //div显示框的ID

maskSize: 6,     //容纳的图片数量大小

navId: 'nav',     //存放图片下方的序列点的容器ID

auto: 5            //图片切换的时间间隔大小,以秒为单位

})

显示界面:

注意:页面还需引用样式文件CssFile.css;

<div style="margin: 0 auto; width: 650px;">

<div id="slider" class="slide-wp">

<ul>

<li>

        <%--每张图片的路径--%>

<img src="data:images/img01.png" alt="" /></li>

<li>

<img src="data:images/ img02.png" alt="" /></li>

<li>

<img src="data:images/ img03.jpg" alt="" /></li>

<li>

<img src="data:images/ img04.jpg" alt="" /></li>

<li>

<img src="data:images/ img05.png" alt="" /></li>

<li>

<img src="data:images/ img06.png" alt="" /></li>

</ul>

</div>

<div id="mask-slider" class="slide-wp" style="display: none;"> </div>

<div class="nav-wp">

<ul id="nav" class="nav">

<li οnclick="mySlider.pos(0)">●</li>

<li οnclick="mySlider.pos(1)">●</li>

<li οnclick="mySlider.pos(2)">●</li>

<li οnclick="mySlider.pos(3)">●</li>

<li οnclick="mySlider.pos(4)">●</li>

<li οnclick="mySlider.pos(5)">●</li>

</ul>

</div>

<script type="text/javascript" src="js/ ImageShow.js"></script>

</div>

转载于:https://www.cnblogs.com/LannyLiu/archive/2013/05/31/3110768.html

JS写的简单的图片播放器相关推荐

  1. HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌)

    用HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌) 效果如下:(鼠标点击按钮可以实现播放或暂停,按钮会旋转,实现了歌词同步,功能还需改进) 代码如下: <!DOCTYPE htm ...

  2. 用Qt写一个简单的音乐播放器(七):界面美化(QSS样式表)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  3. 用Qt写一个简单的音乐播放器(三):增加界面(播放跳转与音量控制)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  4. 用Qt写一个简单的音乐播放器(六):显示歌词(正则表达式)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  5. 用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐

    一.前言 QMediaplayer可以用于解析音频文件和视频文件,继承自QMediaObject,涉及到的对象为QMediaContent.QMediaObject可以提供关于媒体内容的接入,通过UR ...

  6. 用Qt写一个简单的音乐播放器(五):歌曲播放时间显示

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  7. 如何使用aframe.js构建一个简单的VR播放器

    在当今这个信息化的时代,虚拟现实(VR)已经开始逐渐成为一种新的生活方式.作为一名前端开发工程师,在学习和探索VR技术方面,aframe.js是一个非常有趣和有用的工具.在本文中,我将介绍如何使用af ...

  8. 用Qt写一个简单的音乐播放器(四):歌曲浏览、上一曲、下一曲

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  9. java仿qq空间音乐播放_使用JS改造的简单网页音乐播放器,仿QQ空间样式

    最近有好多东西要发表分享给大家,但由于时间问题,越多反而显得越乱,都不知道从何下手,该做的事情还有很多,最近整博客,又整得有点不兼容了,在想抽个时间修复它,可能时间要比较长,因为无从下手,必须一个一个 ...

  10. 用js实现一个简单的音乐播放器

    课堂作业记录,js部分我真的有点写不来hhh,有参考 效果图: 实现了音乐器的简单功能,播放暂停,快进后退,音量加减,进度条的显示,以及歌词滚动等功能 1.播放暂停 mainControl.oncli ...

最新文章

  1. fc天使之翼2020修改版下载_海岛奇兵无限钻石修改版下载-海岛奇兵无限钻石修改版下载2020...
  2. SAP咨询顾问被客户投诉的几个原因
  3. 永洪Desktop安装后启动提示缺少libv8_libbase.dll文件解决办法
  4. 企业上云如何对SLS日志审计服务进行权限控制
  5. ECCV2018 论文简析 Oral_1 持续更新
  6. 那些用起来很爽,但用不好可能会被人打的Python骚操作
  7. ubuntu创建wifi热点(android可识别)亲测可用
  8. [ER/Studio]进行不同版本数据库结构的合并
  9. 主生产计划 操作教程 用友u8_用友U860_主生产计划用户使用手册.pdf
  10. 天网防火墙存在一个安全隐患
  11. mos管的rc吸收电路计算_RC吸收电路参数计算
  12. NFT新玩法丨一文了解将NFT所有权分割成ERC20代币的Fractional协议
  13. 50条字面和实际意思大不同的英语
  14. Windows双开或者多开微信的简单做法
  15. mysql1055_MySQL5.7 group by新特性报错1055的解决办法
  16. 使用Mozilla Thunderbird 创建ics日历文件
  17. 计算机人工智能应用,计算机在人工智能中的应用研究
  18. JDBCUtil工具类,单线程模式
  19. 129.s1-拦截黑名单的电话,Android Studio使用aidl
  20. 用html做七巧板的方法,第一天:html、css的初步学习和制作七巧板

热门文章

  1. .net站点配置完后常见报错及解决措施
  2. .NET :在Visual Studio的不同Tab之间切换
  3. iOS底层探索之Runtime(一):运行时方法的本质
  4. app具体介绍界面-01
  5. php+mysql+json android 连接wamp
  6. 【网络文摘】编程的智慧
  7. centos7修改主机名hostname
  8. 外贸网站SEO优化要共享IP还是独立IP
  9. 编写脚本常用的几种语句
  10. Linux 下串口编程入门教程