标签:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8,chrome=1" />
<meta name="viewport" content="width=1200,user-scalable=yes" />
<title>滚轮切换图片轮播</title>
<script src="../js/jquery-1.8.2.min.js"></script>
<!--<script type="text/javascript" src="https://raw.githubusercontent.com/brandonaaron/jquery-mousewheel/master/jquery.mousewheel.min.js"></script>-->
<script src="../js/mousewheel.min.js"></script>
</head>
<style>
#focus{width:800px; height:450px; overflow:hidden; position:relative; margin:60px auto;}
#focus ul{margin:0; padding:0;width:800px;height:450px; position:absolute; overflow:hidden;list-style:none;}
#focus ul li{ float:left; display:inline;list-style:none;}
#focus ul li img{width:800px;height:450px;overflow:hidden;}
#focus .btnBg {position:absolute; width:800px; height:20px; left:0; bottom:0; background:#000;}
#focus .btn {position:absolute; width:780px; height:10px; padding:5px 10px; right:0; bottom:5px; text-align:right;}
#focus .btn span {display:inline-block; _display:inline; _zoom:1; width:25px; height:10px; _font-size:0; margin-left:5px; cursor:pointer; background:#fff;}
#focus .btn span.on {background:#fff;}
#focus .preNext {width:45px; height:100px; position:absolute; top:170px; background:url(../images/view/spritesss.png) no-repeat #000;cursor:pointer;}
#focus .pre {left:0;}
#focus .next {right:0; background-position:right top;}
</style>
<body style="height:2000px;">
<div id="focus" >
<ul >
<li><a><img src="../images/love5.jpg"></a></li>
<li><a><img src="../images/love3.jpg"></a></li>
<li><a><img src="../images/love4.jpg"></a></li>
<li><a><img src="../images/love1.jpg"></a></li>
</ul>
</div>
<center><button id="sasas">观察我</button><p>在轮播图滚轮操时候,body禁止滚轮</p></center>
<script>
$(document).ready(function(e) {
var $myfocus=$("#focus"),
sWidth=$myfocus.width(),
len=$("#focus ul li").length,
index=0,
picTimer;
// 定义动态按钮 变量
var btn="<div class=‘btnBg‘></div><div class=‘btn‘>";
for(var i=0;i<len;i++){
btn += "<span></span>";
}
btn += "</div> <div class=‘preNext pre‘></div><div class=‘preNext next‘></div>";
$myfocus.append(btn);
$("#focus .btnBg").css(‘opacity‘,0.5);
//上一页、下一页按钮透明
$("#focus .preNext").css(‘opacity‘,0.2).hover(function(e) {
$(this).stop(false,true).animate({"opacity":"0.5"},‘slow‘);
},function(){
$(this).stop().animate({‘opacity‘:0.1},‘slow‘)
});
//为小按钮添加鼠标滑入事件,以显示相应的内容
$("#focus .btn span").css(‘opacity‘,0.5).mouseenter(function(e){
index=$("#focus .btn span").index(this);
showPics(index);
}).eq(0).trigger("mouseenter");
//上一页按钮
var isClick=true,clickTime=null; //添加开关以及计时器 防止过快点击 运行2
$myfocus.on("click",".pre",function(e){
//console.log(e.target.tagName+"is clicked,促发了冒泡");
if(isClick){
index-=1;
if(index==-1){index=len-1}
showPics(index);
isClick=false;
}
clearTimeout(clickTime);
clickTime=setTimeout(function(){isClick=true;},300)
});
//下一页按钮
$myfocus.on("click",".next",function(e){
if(isClick){
index+=1;
if(index==len){index=0}
showPics(index);
isClick=false;
}
clearTimeout(clickTime);
clickTime=setTimeout(function(){isClick=true;},300)
});
//鼠标滚轮切换图片轮播 利用 mousewheel插件的用法 //绑定在li 上面
//var timer=null;
// $(‘#focus‘).find(‘li‘).mousewheel(function(e, delta,deltaX,deltaY) { //alert(‘进入了该方法‘); //绑定在li 上面
//
// if(timer){
// clearInterval(timer);
// }
// var index=$(‘#focus‘).find(‘li‘).index(this);
// if(delta > 0){ //alert(‘向上上滚动‘);
// index-=1;
// if(index==-1){index=len-1}
// timer=setTimeout(function(){showPics(index)},30 );;
// }else{ //alert(‘鼠标滚轮向下 下 面滚动‘);
// index+=1;
// if(index==len){index=0}
// timer=setTimeout(function(){showPics(index)},30 );;
// }
// return false; //阻止滚轮事件冒泡 检点图里面滚动操作时候,body的滚动条禁止 特别注意
// });
//鼠标滚轮切换图片轮播 利用 mousewheel插件的用法 //绑定在 $(‘#focus‘)上
// var flags=true, durs=navigator.userAgent.indexOf("Firefox")>0?780:300; //火狐的滚轮间隔时间需要长一点 不然连续两次一起
// $(‘#focus‘).mousewheel(function(e, delta,deltaX,deltaY) { //alert(‘进入了该方法‘);
// if(flags){
// if(delta > 0){ //alert(‘向上上滚动‘);
// index-=1;
// if(index==-1){index=len-1}
// showPics(index)
// }else{ //alert(‘鼠标滚轮向下 下 面滚动‘);
// index+=1;
// if(index==len){index=0}
// showPics(index)
// }
// $(‘#sasas‘).html(‘当滚到的是第‘+index);
// clearTimeout(picTimer);
// flags=false;
// setTimeout(function(){ flags=!flags;},durs);
//
// }
// return false; //阻止滚轮事件冒泡 检点图里面滚动操作时候,body的滚动条禁止 特别注意
// });
//原生js方法
//自定义滚轮的公共方法
function wheel(obj, fn ,useCapture){
var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn‘t recognize mousewheel as of FF3.x
if (obj.attachEvent) //if IE (and Opera depending on user setting)
obj.attachEvent("on"+mousewheelevt, handler, useCapture);
else if (obj.addEventListener) //WC3 browsers
obj.addEventListener(mousewheelevt, handler, useCapture);
function handler(event) {
var delta = 0,
event = window.event || event ,
delta = event.detail ? -event.detail/3 : event.wheelDelta/120;
if (event.preventDefault)
event.preventDefault();
event.returnValue = false;
return fn.apply(obj, [event, delta]);
}
}
var flags=true,tmps=null;
function rotateimages(delta,e){
var ev=e||window.event;
if(flags){
index=(delta<=-1)? index+1 : index-1 ;
index=(index<0)? len-1 : (index>len-1)? 0 : index;
$(‘#sasas‘).html(‘当滚到的是第‘+index);
showPics(index)
flags=false;
}
clearTimeout(tmps);
tmps=setTimeout(function(){flags=!flags; },250);
if (window.event) {//IE
ev.cancelBubble=true;
} else { //FF
ev.stopPropagation();
}
return false;
}
//原生js 调用
wheel($myfocus[0],function(e,delta){rotateimages(delta,e)},false);
//鼠标滑上焦点图时停止自动播放,滑出时开始自动播放
$myfocus.hover(function(e) {
clearInterval(picTimer);
},function() {
picTimer = setInterval(function() {
showPics(index);
index++;
if(index == len) {index = 0;}
},3500); //此0000代表自动播放的间隔,单位:毫秒
}).trigger("mouseleave");
//先计算出外围的宽度
$("#focus ").find(‘ul‘).css(‘width‘,sWidth*len);
function showPics(index) { //普通切换
var nowLeft = -(index*sWidth); //根据index值计算ul元素的left值
$("#focus ul").stop(true,false).animate({"left":nowLeft},300); //通过animate()调整ul元素滚动到计算出的position
$("#focus .btn span").stop(true,false).animate({"opacity":"0.4"},300).eq(index).stop(true,false).animate({"opacity":"1"},300); //为当前的按钮切换到选中的效果
}
//console.log( $(‘*‘).length );
});
</script>
</body>
</html>
标签:
原文地址:http://www.cnblogs.com/surfaces/p/4546171.html