Home  >  Article  >  Web Front-end  >  Focus image switching with thumbnails implemented by jquery (automatic play/response to mouse actions)_jquery

Focus image switching with thumbnails implemented by jquery (automatic play/response to mouse actions)_jquery

WBOY
WBOYOriginal
2016-05-16 17:43:071210browse
demo04.html
复制代码 代码如下:





手动滚动图片










  • images/1.jpg

  • images/2.jpg

  • images/3.jpg

  • images/4.jpg

  • images/5.jpg

  • images/6.jpg







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, // div的高度
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("
");

// 定义向左按钮的位置
$("#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("
");

// 定义向右按钮的位置
$("#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("");
$("#"+opts.showArea).append("
");
$("#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"
});
}

/**
* Display large image in designated area
*/
function showArea(){
if($("#" opts.showArea).size() > 0){
// Display the position of the main image
var index = Math.floor ((opts.line - 1) / 2);
showIndexArea(index);
// Click the mouse to display the large image
$("#" opts.objId " ul li").each (function(index){
$(this).mouseover(function(){
showIndexArea(index);
});
});
}
}

/**
* Display a large image of the specified element
*/
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");
// Fade the remaining images
$("#" 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
});
// Show large image
$("#" opts.showArea " img:first").attr(" src", imgSrc);
//Show title
if(opts.showTitle){
$("#manualScroll_banner").text(imgAlt);
}
}

/**
* Show the button after sliding the mouse over
*/
$("#" 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");

/**
* The first function to be executed
* Stops automatic playback when the mouse slides over the focus image, and starts automatic playback when the mouse slides out
*/
// Initialize the large image
showArea();
$("#" opts.objId ).hover(function() {
clearInterval(opts.picTimer);
},function() {
opts.picTimer = setInterval(function() {
scrollLeft();
},opts.interval); // Autoplay interval, unit: milliseconds
}).trigger("mouseleave");
}
});
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn