您的位置:首页 > Web前端 > JQuery

jQuery学习笔记(九)JQ实现放大镜,轮播图,无缝滚动实现

2018-02-05 09:50 459 查看

这篇为手打,记录原理!

无缝滚动和放大镜效果

无缝滚动原理:设置好长条宽度和单一图片的高度,然后让一个DIV包裹,clone这个DIV,然后接到这个DIV之后就可以了

放大镜原理:显示的图片是原图缩小至少一倍。放大镜做一个DIV区域,用来显示图片的原图,根据鼠标移入和移出事件来调出隐藏的放大镜区域。根据鼠标移动的坐标来移动DIV区域

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="../jquery.js"></script>
<script src="./login.js"></script>
<style>
*{
padding: 0;
margin: 0;
}
#login{
width: 250px;
height: 100px;
border: 1px solid red;
position: absolute;
left: 387px;
z-index: 99999;
background: #00FFFF;
display: none;
}
table{
width: 250px;
height: 100px;
}
#bk{

background: #333333;
display: none;
position: absolute;
left: 0;
top: 0;
z-index: 99998;
opacity: 0.5;
filter:alpha(opacity=50);
/*透明度谷歌浏览器和IE分别设置*/
}
li a img{
width: 200px;
}
li{
list-style-type: none;
float: left;
}
#win{
width:1024px;
height: 310px;
border: 1px solid rgb(160,234,252);
overflow: hidden;
}
.image{
width:1600px;
float: left;

}
p{
height: 20px;
line-height: 20px;
text-align: center;
display: block;

}
#images{
width: 180px;
height: 245px;
border: 10px solid pink;
position: relative;
}
#fd{
width: 100px;
height: 100px;
background: yellow;
opacity: 0.4;
position:absolute;
top: 200px;
left: 0px;
cursor: move;
display: none;
}
#source{
width: 160px;
height: 160px;
border: 1px solid #ccc;
position: absolute;
right: -240px;
top: 0px;
display: none;
overflow: hidden;
border: 10px solid #CC3366;
}
#source img{
position: absolute;
top: 0px;
left: 0px;
}
#bk{
position: absolute;
bottom: 0;
left: 0;
height: 50px;
width: 400px;
background: white;
opacity: 0.6;
filter:alpha(opacity=60);
}

</style>
<title>登录遮光特效</title>
</head>
<body>
<h2>图片放大镜</h2>
<h5>备注:此处的照片是上传后压缩的</h5>
<h5>JQ设置的放大的倍数也是取决于原图缩小的倍数</h5>
<div>
<div id="images">
<img src="./img/1.jpg" alt="" width="170px"/>
<div id="fd"></div>
<div id="source">
<img src="./img/1.jpg" alt="">
</div>
</div>
<button>登录</button>
<div id=login>
<form action="" id="reg">
<table>
<tr><td>用户名</td><td><input type="text"></td></tr>
<tr><td>密码</td><td><input type="text"></td></tr>
<tr>
<td>
<input type="submit" value="提交">
<input type="reset" value="清空">
</td>
<td>
<input type="button" id="close" value="关闭">
</td>
</tr>
</table>
</form>
</div>

<h2>图片无缝滚动</h2>
<div id="win">
<div style="width: 2000px;">
<div id="image" name="image">
<li>
<a href="">
<img src="./img/1.jpg" alt=""/>
</a>
<p>挑选天字号</p>
</li>
<li>
<a href="">
<img src="./img/2.jpg" alt=""/>
</a>
<p>挑选一号</p>
</li>
<li>
<a href="">
<img src="./img/3.jpg" alt=""/>
</a>
<p>挑选二号</p>
</li>
<li>
<a href="">
<img src="./img/4.jpg" alt=""/>
</a>
<p>挑选三号</p>
</li>
<li>
<a href="">
<img src="./img/5.jpg" alt=""/>
</a>
<p>挑选四号</p>
</li>
<li>
<a href="">
<img src="./img/6.jpg" alt=""/>
</a>
<p>挑选五号</p>
</li>
<li>
<a href="">
<img src="./img/7.jpg" alt=""/>
</a>
<p>挑选六号</p>
</li>
<li>
<a href="">
<img src="./img/8.jpg" alt=""/>
</a>
<p>挑选七号</p>
</li>
</div>
</div>
</div>

<div id="bk">
</body>
</html>

无缝滚动和是放大镜实现效果JS文件:


$(function(){
//找到button,绑定点击事件
$("button").click(function(){
//获取可见窗口的宽度和高度
var docdq=$(document).scrollTop();//定位到当前元素到上面的高度
var winW=$(window).height();
var pageW=$(document).width();
var pageH=$(window).height();
var sleft=pageW/2-$("#login").width()/2;
var stop=pageH/2-$("#login").height()/2;

//让登陆层和遮罩层显示出来
$("#login").fadeIn(1000).css({"left":sleft,"top":(docdq+stop)});
$("#bk").fadeIn(1000).css({"width":pageW,"height":pageH,"top":docdq});
$(document.body).css({
//禁止窗口滑动
"overflow-x":"hidden",
"overflow-y":"hidden"
});
});

$("#close").click(function(){
$("#login").fadeOut(1000);
$("#bk").fadeOut(1000);
//禁止滑动解除
$(document.body).css({
"overflow-x":"auto",
"overflow-y":"auto"
});
});

/*表单清空
myform.onsubmit=function(){
return false;
}
*/

/*图片滚动开始*/
//图片滚动特效
//1,克隆图片层出来
var speed=10;
var img=$("#image").clone(true);
img.insertAfter($("#image"));
//2,让第一个image层向左移动
var s=setInterval(function(){
//3,判断第一个图片层是否已经去阿奴已经出去,如果已经全部出去,让该层回到初始状态
if(parseInt($("#image").first().css("margin-left"))<=-1600){
$("#image").first().css("margin-left",0);
}
$("#image").first().css("margin-left","-=1px");
},speed);

//给image做一个划入和划出效果
$("#image").hover(function(){
clearInterval(s);
},function(){
s=setInterval(function(){
if(parseInt($("#image").first().css("margin-left"))<=-1600){
$("#image").first().css("margin-left",0);
}
$("#image").first().css("margin-left","-=1px");
},speed);
});
/*图片滚动结束*/

/*图片放大镜开始*/
//1,让黄色的层跟着鼠标走
$("#images").mousemove(function(e){
var sleft=e.clientX-$(this).offset().left-$("#fd").width()/2;
var stop=e.clientY-$(this).offset().top-$("#fd").height()/2;
if(sleft<=0){
sleft=0;//处理越界操作
}
if(stop<=0){
stop=0;//处理越界操作
}
if(sleft>=$("#images").width()-$("#fd").width()){
sleft=$("#images").width()-$("#fd").width();
}
if(stop>=$("#images").height()-$("#fd").height()){
stop=$("#images").height()-$("#fd").height();
}
//黄层移动
$("#fd").css({"top":stop,"left":sleft});
//让大图移动
$("#source").find("img").css({"top":-stop*2,"left":-sleft*2});
//放大倍数
}).hover(function(){
$("#fd").show();
$("#source").show();
},function(){
$("#fd").hide();
$("#source").hide();
});

/*图片放大镜结束*/

});


图片轮播HTML


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
li{
list-style-type: none;
float: left;
color: #ccc;
}
#index{
position: absolute;
right: 480px;
top: 400px;
font-size: 130px;
}
b{
position: absolute;
bottom: 5px;
left: 10px;
font-family: Microsoft YaHei;
color: #444;
}
#wind{
width: 960px;
height: 450px;
border: 10px solid #FF3366;
position: relative;
overflow: hidden;
}
#bk{
position: absolute;
bottom: 0;
left: 0;
height: 30px;
width: 960px;
background: white;
opacity: 0.6;
filter:alpha(opacity=60);
}
</style>
<script src="../jquery.js"></script>
<script src="./lunbo.js"></script>
<title>Document</title>
</head>
<body>
<h2>轮播图切换</h2>
<div id="wind">
<div id="image1">
<li alt="第一个图片">
<a href=""><img src="./img/11.jpg" ></a>
</li>
<li alt="第二个图片">
<a href=""><img src="./img/22.jpg" ></a>
</li>
<li>
<a href="" alt="第二个图片"><img src="./img/33.jpg" alt="第三个图片"></a>
</li>
<li>
<a href="" alt="第三个图片"><img src="./img/44.jpg" alt="第四个图片"></a>
</li>
<li>
<a href=""><img src="./img/55.jpg" alt="第五个图片"></a>
</li>
<li>
<a href=""><img src="./img/66.jpg" alt="第六个图片"></a>
</li>
</div>
</div>
<div id="bk"></div>
<b>第一个美女&
b602
lt;/b>
<div id="index">
<li>·</li>
<li>·</li>
<li>·</li>
<li>·</li>
<li>·</li>
<li>·</li>
</div>
</body>
</html>


图片轮播JS

$(function(){

/*幻灯片播放开始*/
//1,初始化操作
var s=null;
var index=0;
$("#image1").find("li").hide();
$("#image1").find("li").first().show();
$("#index").find("li").first().css("color","rgb(120,234,252)");
/*幻灯片播放结束*/
//2,制作手动的切换
$("#index").find("li").click(function(){
//先获取当前点击的li的索引
index=$(this).index();
//找到该索引下的图片显示出来
$("#image1").find("li").hide();
$("#image1").find("li").eq(index).show();
//给索引点改变颜色
$("#index").find("li").css("color","#444");
$("#index").find("li").eq(index).css("color","#FF0000");
//修改图片说明
info=$("image1").find("li").eq(index).find("a").attr("alt");
$("#wind").find("b").html(info);
});
//完成自动切换
s=setInterval(function(){
if(index>4){
index=0;
}
$("#index").find("li").eq(index).trigger("click");
index++;
},3000);
});


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: