当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)

jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)

2018年11月13日  | 移动技术网IT编程  | 我要评论

demo04.html

. 代码如下:


<!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>手动滚动图片</title>
<style type="text/css">
ul,li{margin:0;padding:0}
img{border:0px;}
#container{padding:40px;}
#showarea img{width:700px;}
a{text-decoration:none;border:0px;}
#scrolldiv{border:#ccc 1px solid;}
#scrolldiv li{background:#a83;}
</style>
<script src="../jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="manualscroll-0.1.4.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){

$.manualscroll({
objid:"scrolldiv",
showarea:"showarea",
showtitle: true,
height:105,
width:140,
line:5,
speed:1000
});
});
</script>
</head>
<body>
<p id="container">
<p id="showarea"></p>
<p id="scrolldiv">
<ul>
<li><a href="#"><img src="images/1.jpg" alt="images/1.jpg" width="140"/></a></li>
<li><a href="#"><img src="images/2.jpg" alt="images/2.jpg" width="140"/></a></li>
<li><a href="#"><img src="images/3.jpg" alt="images/3.jpg" width="140"/></a></li>
<li><a href="#"><img src="images/4.jpg" alt="images/4.jpg" width="140"/></a></li>
<li><a href="#"><img src="images/5.jpg" alt="images/5.jpg" width="140"/></a></li>
<li><a href="#"><img src="images/6.jpg" alt="images/6.jpg" width="140"/></a></li>
</ul>
</p>
</p>
</body>
</html>


manualscroll-0.1.4.js

. 代码如下:


/**
* 手动滚动图片
*
**/
$.extend({
manualscroll:function(opt,callback){
//alert("suc");
this.defaults = {
objid:"", // 滚动区域id
showarea:"", // 大图显示区域id,如果没有就不显示
showwidth:700, // 大图宽度
showheight:525, // 大图高度
showtitle: false, // 是否在大图下方显示标题
width:300, // 每行的宽度
height:100, // p的高度
line:2, // 每次滚动的行数
autoline:1, // 自动滚动的行数
speed:0, // 动作时间
interval:3000, // 滚动间隔
imgpath:"", // 图片根目录
directbtn:"img/direct_btn02.png", // 指向图片
pictimer:0, // 间隔句柄,不需要设置,只是作为标识使用
opacity:0.3 // 按钮透明度
};

//参数初始化
var opts = $.extend(this.defaults,opt);

// 定义外层元素样式
$("#"+opts.objid).css({
"position":"relative",
"overflow":"hidden",
"width":(opts.line * opts.width) + "px"
});
// 定义ul样式
$("#"+opts.objid + " ul").css({
"width":opts.width * $("#"+opts.objid + " ul").find("li").size() + "px",
"height":opts.height + "px"
});

// 定义li样式
$("#"+opts.objid + " ul li").css({
"display":"block",
"float":"left",
"width":opts.width + "px",
"height":opts.height + "px"
});

// 添加向左滚动按钮
$("#"+opts.objid).append("<p id=\"button_left\"></p>");

// 定义向左按钮的位置
$("#button_left").css({
"width":"40px",
"height":"40px",
"background":"url(" + opts.imgpath + opts.directbtn + ")",
"background-position":"0px 0px",
"position":"absolute",
"left":"0px",
"top":(opts.height/2 - 20) + "px"
});

// 添加向右滚动按钮
$("#"+opts.objid).append("<p id=\"button_right\"></p>");

// 定义向右按钮的位置
$("#button_right").css({
"width":"40px",
"height":"40px",
"background":"url(" + opts.imgpath + opts.directbtn + ")",
"background-position":"-40px 0px",
"position":"absolute",
"left":(opts.line * opts.width - 40) + "px",
"top":(opts.height/2 - 20) + "px"
});

// 向左按钮添加动作
$("#button_left").click(function(){
var scrollwidth = 0 - opts.line * opts.width - (0 - $("#"+opts.objid).find("ul:first").css("margin-left").replace("px",""));
// 无间断滚动
$("#"+opts.objid).find("ul:first").animate({
marginleft:scrollwidth
},opts.speed,function(){
for(i=1;i<=opts.line;i++){
$("#"+opts.objid).find("li:first").appendto($("#"+opts.objid).find("ul:first"));
}
$("#"+opts.objid).find("ul:first").css({marginleft:0});
showarea();
});
});

// 向右按钮添加动作
$("#button_right").click(function(){
var scrollwidth = (0 - opts.line*opts.width + (0 - $("#"+opts.objid).find("ul:first").css("margin-left").replace("px","")));
// 无间断滚动
$("#"+opts.objid).find("ul:first").animate({
marginleft:scrollwidth
},0,function(){
for(i=1;i<=opts.line;i++){
$("#"+opts.objid).find("li:last").prependto($("#"+opts.objid).find("ul:first"));
}
$("#"+opts.objid).find("ul:first").animate({
marginleft:0
},opts.speed,function(){
$("#"+opts.objid).find("ul:first").css({marginleft:0});
showarea();
});
});
});

/**
* 自动横向滚动
*/
function scrollleft(){
var scrollwidth = 0 - opts.autoline * opts.width - (0 - $("#"+opts.objid).find("ul:first").css("margin-left").replace("px",""));
$("#"+opts.objid).find("ul:first").animate({
marginleft:scrollwidth
},opts.speed,function(){
for(i=1;i<=opts.autoline;i++){
$("#"+opts.objid).find("li:first").appendto($("#"+opts.objid).find("ul:first"));
}
$("#"+opts.objid).find("ul:first").css({marginleft:0});
showarea();
});
};

/**
* 大图下方显示标题
*/
if(opts.showtitle && $("#"+opts.showarea).size() > 0){
$("#"+opts.showarea).css({
"width":opts.showwidth + "px",
"position":"relative",
"height":opts.showheight + "px"
});
$("#"+opts.showarea).html("<img />");
$("#"+opts.showarea).append("<p id=\"manualscroll_banner\" ></p>");
$("#manualscroll_banner").css({
"width":opts.showwidth + "px",
"height":"20px",
"background":"#333",
"position":"absolute",
opacity:0.7,
"text-align":"center",
"color":"#fff",
"left":"0px",
"top":(opts.showheight - 20) + "px"
});
}

/**
* 在指定区域显示大图
*/
function showarea(){
if($("#"+opts.showarea).size() > 0){
// 显示主图的位置
var index = math.floor((opts.line - 1) / 2);
showindexarea(index);
// 鼠标划上后显示大图
$("#"+opts.objid + " ul li").each(function(index){
$(this).mouver(function(){
showindexarea(index);
});
});
}
}

/**
* 显示指定元素的大图
*/
function showindexarea(index){
var imgsrc = $("#"+opts.objid + " ul li:eq(" + index + ") img:first").attr("src");
var imgalt = $("#"+opts.objid + " ul li:eq(" + index + ") img:first").attr("alt");
// 淡化显示其余图片
$("#"+opts.objid + " ul li:lt(" + index + ")").css({
opacity:0.5
});
$("#"+opts.objid + " ul li:gt(" + index + ")").css({
opacity:0.5
});
$("#"+opts.objid + " ul li:eq(" + index + ")").css({
opacity:1
});
// 显示大图
$("#"+opts.showarea + " img:first").attr("src", imgsrc);
// 显示标题
if(opts.showtitle){
$("#manualscroll_banner").text(imgalt);
}
}

/**
* 鼠标滑上后显示按钮
*/
$("#"+opts.objid).hover(function() {
$("#button_left").css({
opacity:1
});
$("#button_right").css({
opacity:1
});
},function() {
$("#button_left").css({
opacity:opts.opacity
});
$("#button_right").css({
opacity:opts.opacity
});
}).trigger("mouseleave");

/**
* 最先执行的函数
* 鼠标滑上焦点图时停止自动播放,滑出时开始自动播放
*/
// 初始化大图
showarea();
$("#"+opts.objid).hover(function() {
clearinterval(opts.pictimer);
},function() {
opts.pictimer = setinterval(function() {
scrollleft();
},opts.interval); // 自动播放的间隔,单位:毫秒
}).trigger("mouseleave");
}
});

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网