- 浏览: 260071 次
- 性别:
- 来自: 北京
最新评论
-
haixin3036:
jQuery是一套跨浏览器的JavaScript库,简化HTM ...
jquery sizzle 选择器浅析 -
panshunchang:
非常感谢分享,正找这东西呢。
基于jQuery的QQ表情插件 -
yuur369:
不错。。。
移动端webapp开发必备知识
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>轮播原生js面对对象封装版</title>
<style>
body, ul, li, p{margin: 0;padding: 0;}
ul{list-style-type:none;}
body{font-family:"Times New Roman", Times, serif;}
#box{position:relative;width:492px;height:172px;margin:10px auto;}
#box .imgList{position:relative;width:490px;height:170px;overflow:hidden;}
#box .imgList li{position:absolute;top:0;left:0;width:490px;height:170px;}
#box .countNum{position:absolute;right:0;bottom:5px;}
#box .countNum li{width:20px;height:20px;float:left;color:#fff;border-radius:20px;background:#f90;text-align:center;margin-right:5px;cursor:pointer;opacity:0.7;filter:alpha(opacity=70);}
#box .countNum li.current{background:#f60;font-weight:bold;opacity:1;filter:alpha(opacity=70);}
</style>
<script>
function runImg(){}
//使用原型对象增加runImg的属性和方法
runImg.prototype={//初始化变量
bigbox:null,//最外层容器
boxul:null,//子容器ul
imglist:null,//子容器img
numlist:null,//子容器countNum
index:0,//当前显示项
timer:null,//控制图片转变效果
play:null,//控制自动播放
imgurl:[],//存放图片
count:0,//存放的个数
//定义$方法
$:function(obj)
{
if(typeof(obj)=="string")
{
if(obj.indexOf("#")>=0)
{
obj=obj.replace("#","");
if(document.getElementById(obj))
{
return document.getElementById(obj);
}
else
{
alert("没有容器"+obj);
return null;
}
}
else
{
return document.createElement(obj);
}
}
else
{
return obj;
}
},
//初始化
info:function(id)
{
this.count=this.count<=5?this.count:5;
this.bigbox=this.$(id);//最外层容器对象
//创建两个ul一个放图片 一个放数字标识1,2,3
for(var i=0;i<2;i++)
{
var ul=this.$("ul");
for(var j=1;j<=this.count;j++)
{
var li=this.$("li");
li.innerHTML=i==0?this.imgurl[j-1]:j;
ul.appendChild(li);
}
this.bigbox.appendChild(ul);
}
this.boxul=this.bigbox.getElementsByTagName("ul");
this.boxul[0].className="imgList";//图片列表
this.boxul[1].className="countNum";//数字列表
this.imglist=this.boxul[0].getElementsByTagName("li");
this.numlist=this.boxul[1].getElementsByTagName("li");
this.numlist[0].className="current";//第一个数字为当前的
},
//封装程序入口
action:function(id)
{
this.autoplay();
this.mouseoverout(this.bigbox,this.numlist);
},
//图片切换效果
imgshow:function(num,numlist,imglist)
{
this.index=num;
var alpha=0;
for(var i=0;i<numlist.length;i++)
{
numlist[i].className="";
}
numlist[this.index].className="current";
clearInterval(this.timer);
for(var j=0;j<imglist.length;j++)
{
imglist[j].style.opacity=0;
imglist[j].style.filter="alpha(opacity=0)";
}
var $this=this;
//利用透明度来实现切换图片
this.timer=setInterval(function(){
alpha+=2;
if(alpha>100){alpha=100};//不能大于100
//为兼容性赋样式
imglist[$this.index].style.opacity=alpha/100;
imglist[$this.index].style.filter="alpha(opacity="+alpha+")";
if(alpha==100){clearInterval($this.timer)};//当等于100的时候就切换完成了
},20)//经测试20是我认为最合适的值
},
//自动播放
autoplay:function(){
var $this=this;
this.play=setInterval(function(){
$this.index++;
if($this.index>$this.imglist.length-1){$this.index=0};//播放到最后 重新开始
$this.imgshow($this.index,$this.numlist,$this.imglist);
},2000)
},
//处理鼠标事件
mouseoverout:function(box,numlist)
{
var $this=this;
box.onmouseover=function()
{
clearInterval($this.play);
}
box.onmouseout=function()
{
$this.autoplay($this.index);
}
for(var i=0;i<numlist.length;i++)
{
numlist[i].index=i;
numlist[i].onmouseover=function(){
$this.imgshow(this.index,$this.numlist,$this.imglist);
}
}
}
}
window.onload=function(){
var runimg=new runImg();
runimg.count=3;
runimg.imgurl=[
"<img src=\"http://i.mmcdn.cn/simba/img/T117eTXmXqXXXXXXXX.jpg\"/>",
"<img src=\"http://img03.taobaocdn.com/tps/i3/T1t8eTXbBtXXXXXXXX-490-170.png\"/>",
"<img src=\"http://i.mmcdn.cn/simba/img/T1OVOUXeNjXXXXXXXX.jpg\"/>"];
runimg.info("#box");
runimg.action("#box");
}
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>
发表评论
-
Javascript类定义语法,私有成员、受保护成员、静态成员等
2014-05-29 10:59 719JS只是一门支持面向对象编程的语言,通过OO可以让我们的 ... -
Javascript 继承模式
2014-05-29 10:59 713在面向对象的JavaScript开发中使用继承可以提高代码 ... -
用JavaScript实现自己的DOM选择器
2014-05-28 14:27 671解释器模式(Interpreter):定义一种语法格式,通过 ... -
Javsript代码的注释和模块定义
2014-05-28 14:21 828可以这样定义模块: (function(ns, re ... -
在JavaScript中应用单例模式管理命名空间
2014-05-28 10:56 794单例模式确保一个类在整个应用程序中只有一个是实例对象,在J ... -
移动WEB开发中媒体查询里的width, device-width, resolution
2014-05-28 10:14 1001/*1、width: viewport的宽度,css像素,三星 ... -
前端性能优化
2014-05-27 15:16 8771. 请减少HTTP请求 基本原理: ... -
jquery sizzle 选择器浅析
2014-05-26 14:23 1203看了jquery的源码,jquery用的选择器的引擎是siz ... -
jQuery 1.8,1.9和2.0分别带来的新特性
2014-05-26 14:17 1328jQuery 1.8 可定制 在jQuery ... -
jquery点击div之外的地方div本身消失
2014-05-15 12:22 875<!DOCTYPE html PUBLIC " ... -
jquery-migrate: 迁移旧的jQuery代码至jQuery1.9以上的版本
2014-05-14 16:31 649这个插件可以用来检测和恢复在jQuery1.9版本中已删除或 ... -
移动WEB在线开发工具 – Codiqa
2014-05-12 15:43 633Codiqa,https://codiqa.com 简单试用 ... -
Android手机版浏览器DIV滚动条失效解决方案
2014-05-08 11:09 1203除了BODY和HTML的滚动条,在触屏下几乎所有浏览器都不支 ... -
解耦HTML、CSS和JavaScript
2014-02-14 11:32 622当前在互联网上, ... -
使用console.table()调试javascript
2014-01-20 15:42 609或许你已经习惯了console.log()来调试js,非常好 ... -
JS对象复制
2014-01-17 16:18 604在JavaScript很多人复制 ... -
jQuery反向排序(倒序)子对象
2013-12-26 10:53 2280<!DOCTYPE html><html&g ... -
js object写法 参数传递jquery对象
2013-12-24 11:21 925<!DOCTYPE HTML PUBLIC &quo ... -
JavaScript模拟QQ签名(HTML5 contenteditable属性)
2013-12-24 11:08 587一、思路 1、单击元素时,使元素可以编辑,并获得焦点 2 ... -
ieBetter.js-让IE6-IE8拥有IE9+,Chrome等浏览器特性
2013-12-19 15:47 804IE6-IE8浏览器,按照现代浏览器的API来工作就好了!也 ...
相关推荐
原生js滑动图片轮播切换效果代码
Flash 图片轮播 原生js 含运动框架
使用原生javascript + 使用面向对象思想,编写无缝轮播图特效。
原生js实现无缝轮播(包括面向对象的写法),包括实现思路。
简单实用原生js实现带缩略图文字说明左右轮播切换相册插件下载。一款基于原生JavaScript实现图片相册幻灯轮播图特效插件,没有引入任何jQuery库,短短数行原生php中文网实现。
原生js基于css3属性制作三种图片切换效果,3D轮播、无缝轮播 、淡入淡出图片轮播任意切换代码。
使用原生的JS制作的图片切换效果,资源内部附有全部代码以及参考实例,很容易使用
原生js图片插件缩略图片控制大图淡出淡进切换支持图片轮播切换
原生js控制图片宽度属性缓慢缩小轮播切换效果代码 原生js控制图片宽度属性缓慢缩小轮播切换效果代码 原生js控制图片宽度属性缓慢缩小轮播切换效果代码
原生JS实现图片轮播 JS实现小广告插件 最近想用原生JS多实现一些小功能,现在写到博客里,大家可以借鉴,有问题欢迎指出。 轮播图 需求: 图片循环轮播,可点击左右切换,切换状态与绑定,鼠标移入图片悬停,...
原生js简单写的一个轮播图,代码里有详细的注释,简单的一个原生js轮播图效果,欢迎大佬指点江山,如果有萌新不懂的地方欢迎私信;
原生js代码五屏图片上下水波纹切换 原生js代码五屏图片上下水波纹切换
用原生的mediaplayer+viewpage实现 视频 图片 混合轮播
轮播-左右轮播封装插件,可以自动轮播,也可以鼠标进过,slide插件
图片轮播 js原生(淡入淡出)
js原生卡片式轮播图.zip
原生js代码制作首页焦点图片广告上下滚动轮播切换
原生js轮播效果
利用javasScript实现图片轮播,具有1.自动播放(鼠标进入显示区域时停止播放) 2.左右焦点切换 3.底下小按钮切换 等功能