js 图片轮播插件
来源:互联网 发布:最新好看的网络电影 编辑:程序博客网 时间:2024/04/28 18:12
本插件调用很简单,显示效果也很简单,绝大部分工作用js完成,这是第一版,有个小问题需要改进一下,改进版可以满足传参,一个窗口显示多个图片轮播,这个由读者完成
HTML页
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Pictures2</title> <link href="../Content/StyleSheete.css" rel="stylesheet" /> <script src="../Scripts/JavaScripte.js"></script><meta charset="utf-8" /></head><body> <div id="pictures"></div></body></html>
CSS页
*{ margin:0px; padding:0px;}body { background-color:black; text-align:center;}#pictures{ background-color:white; position:absolute; left:50%; top:50%; margin-top:-200px; margin-left:-300px; width:600px; height:400px; overflow:hidden;}
js页
(function () { window.fhoafbponpanlndnvornofnrrnvapnrr = function () { this.cfg = { /* 图片路径列表 */p_url_list: [ '../imgs/a.jpg', '../imgs/b.jpg', '../imgs/c.jpg', '../imgs/d.jpg', '../imgs/e.jpg', ],/* 图片路径列表 */ ///* 图片路径列表 */p_url_list: [ // '../pictures/1.jpg', // '../pictures/2.jpg', // '../pictures/3.jpg', // '../pictures/4.jpg', // '../pictures/5.jpg', // '../pictures/6.jpg', // '../pictures/7.jpg', //],/* 图片路径列表 */ /* 本图片轮播控件的父div的id */ parent_div_id: "pictures", /* 本图片轮播控件的父div的id */ /* 图片的宽 */ p_width: 600, /* 图片的宽 */ /* 图片的高 */ p_height: 400, /* 图片的高 */ /* 每个动画的运动时间 */ flash_run_time: 500, /* 每个动画的运动时间 */ /* 每个动画之间的时间间隔 */ auto_interval_time: 3000, /* 每个动画之间的时间间隔 */ /* 动画每一秒多少帧 */ frame_count_per_second: 50, /* 动画每一秒多少帧 */ /* 方块的大小 */ a_width: 14, /* 方块的大小 */ /* 方块边框的大小 */ a_border_width: 2, /* 方块边框的大小 */ /* 方块边框的颜色 */ a_border_color: "#fff",/* 方块边框的颜色 */ /* 方块圆角的角度 */ a_border_radius: 7, /* 方块圆角的角度 */ /* 方块之间的间距 */ a_d: 16, /* 方块之间的间距 */ /* 方块背景色 */ a_bg_color: "#0458E2", /* 方块背景色 */ /* 活动方块背景色 */ a_act_bg_color: "#BB4C08",/* 活动方块背景色 */ }; this.img_count = this.cfg.p_url_list.length; this.move_div = document.createElement("div"); this.current_left = 0; this.pic_load_progress = 0; this.interval_id = null; this.dots_div = document.createElement("div"); this.dots_div_ul = document.createElement("ul"); this.dots_div_ul_li = []; this.dots_div_ul_li_a = []; this.act_a = 0; }; fhoafbponpanlndnvornofnrrnvapnrr.prototype = { start: function () { this.load_pics(); }, load_pics: function () { var _this = this; for (var i = 0; i < this.img_count; i++) { var img = new Image(); img.src = this.cfg.p_url_list[i]; img.onload = function () { delete this; _this.pic_load_progress += 100 / _this.img_count; if (_this.pic_load_progress > 99) { _this.init(); } }; } }, init: function () { var _this = this; this.move_div.style.position = "absolute"; this.move_div.style.width = this.img_count * this.cfg.p_width + "px"; this.move_div.style.height = this.cfg.p_height + "px"; this.move_div.style.top = 0 + "px"; this.move_div.style.left = this.current_left + "px"; document.getElementById(this.cfg.parent_div_id).appendChild(this.move_div); this.dots_div.style.position = "absolute"; this.dots_div.style.width = (this.cfg.a_width + this.cfg.a_d) * this.img_count + "px"; this.dots_div.style.height = this.cfg.a_width + "px"; this.dots_div.style.left = (this.cfg.p_width - (this.cfg.a_width + this.cfg.a_d) * this.img_count) / 2 + "px"; this.dots_div.style.bottom = 10 + "px"; document.getElementById(this.cfg.parent_div_id).appendChild(this.dots_div); this.dots_div.appendChild(this.dots_div_ul); for (var i = 0; i < this.img_count; i++) { this.dots_div_ul_li_a[i] = document.createElement("a"); this.dots_div_ul_li_a[i].style.width = this.cfg.a_width - this.cfg.a_border_width * 2 + "px"; this.dots_div_ul_li_a[i].style.height = this.cfg.a_width - this.cfg.a_border_width * 2 + "px"; this.dots_div_ul_li_a[i].style.border = this.cfg.a_border_width + "px solid " + this.cfg.a_border_color; this.dots_div_ul_li_a[i].style.borderRadius = this.cfg.a_border_radius + "px"; this.dots_div_ul_li_a[i].style.display = "block"; this.dots_div_ul_li_a[i].style.backgroundColor = this.cfg.a_bg_color; this.dots_div_ul_li[i] = document.createElement("li"); this.dots_div_ul_li[i].style.width = (this.cfg.a_width + this.cfg.a_d) + "px"; this.dots_div_ul_li[i].style.height = this.cfg.a_width + "px"; this.dots_div_ul_li[i].style.cssFloat = "left"; this.dots_div_ul_li[i].style.listStyleType = "none"; this.dots_div_ul.appendChild(this.dots_div_ul_li[i]); this.dots_div_ul_li[i].appendChild(this.dots_div_ul_li_a[i]); } this.dots_div_ul_li_a[this.act_a].style.backgroundColor = this.cfg.a_act_bg_color; for (var i = 0; i < this.img_count; i++) { var img = new Image(); img.src = this.cfg.p_url_list[i]; img.style.width = this.cfg.p_width + "px"; img.style.height = this.cfg.p_height + "px"; img.style.cssFloat = "left"; this.move_div.appendChild(img); } this.auto_loop(); }, auto_loop: function () { var _this = this; var loop = function () { _this.act_a = (_this.act_a +1)%_this.img_count; if (_this.act_a ==0) { _this.dots_div_ul_li_a[_this.act_a].style.backgroundColor = _this.cfg.a_act_bg_color; _this.dots_div_ul_li_a[_this.img_count-1].style.backgroundColor = _this.cfg.a_bg_color; } else { _this.dots_div_ul_li_a[_this.act_a].style.backgroundColor = _this.cfg.a_act_bg_color; _this.dots_div_ul_li_a[_this.act_a - 1].style.backgroundColor = _this.cfg.a_bg_color; } if (_this.current_left == -(_this.cfg.p_width * (_this.img_count - 1))) { _this.move_move_div(_this.current_left, 0, _this.cfg.flash_run_time); _this.current_left = 0; } else { _this.move_move_div(_this.current_left, _this.current_left - _this.cfg.p_width, _this.cfg.flash_run_time); _this.current_left -= _this.cfg.p_width; } }; for (var i = 0; i < _this.img_count; i++) { _this.dots_div_ul_li_a[i].onmouseover = function () { clearInterval(_this.interval_id); _this.dots_div_ul_li_a[_this.act_a].style.backgroundColor = _this.cfg.a_bg_color; _this.act_a = _this.dots_div_ul_li_a.indexOf(this); _this.dots_div_ul_li_a[_this.act_a].style.backgroundColor = _this.cfg.a_act_bg_color; _this.move_move_div(_this.current_left, -_this.act_a * _this.cfg.p_width, _this.cfg.flash_run_time); _this.current_left = -_this.act_a * _this.cfg.p_width; }; _this.dots_div_ul_li_a[i].onmouseleave = function () { _this.interval_id = setInterval(loop, _this.cfg.auto_interval_time); }; } this.interval_id = setInterval(loop, this.cfg.auto_interval_time); }, move_move_div: function (begin, end, time) { var _this = this; var fs = (time / 1000) * this.cfg.frame_count_per_second; var b = begin, e = end, d = (e - b) / fs, n = 0; var tm = 1000 / this.cfg.frame_count_per_second; var move = function () { n++; b += d; _this.move_div.style.left = b + "px"; if (n < fs) { setTimeout(move, tm); } }; move(); }, };}());document.addEventListener("DOMContentLoaded", function () { (new fhoafbponpanlndnvornofnrrnvapnrr()).start(); }, false);
0 0
- js 图片轮播插件
- 图片轮播插件jquery.smallslider.js
- 图片轮播插件jquery.smallslider.js
- 使用js插件实现图片轮播
- 图片轮播插件
- 图片轮播插件
- 用jquery.imageScroller.js插件做图片展示轮播
- bootstrap js插件篇——手风琴、图片轮播
- 强大的js图片轮播插件Swiper
- jQuery 3D旋转图片轮播插件imageflow.js
- js图片轮播
- js图片轮播
- js图片轮播
- JS 图片轮播
- js图片轮播
- js图片轮播
- jQuery 图片轮播插件
- jQuery 图片轮播插件
- eclipse一些设置方法
- Java动态代理
- html/css 页脚div控制在页面底部
- android studio怎么快速新建项目? 快速提取方法
- linux vi编辑常用命令
- js 图片轮播插件
- MyEclipse for mac retina屏模糊的问题
- Tomcat 安全配置与性能优化
- SpriteBatch and renderstates in XNA Game Studio 4.0
- 一个分布式Java Web Session
- Android适配相关小结
- OpenStack Nova VNC Proxy原理及过程
- bacula配置逻辑结构图
- UGUI