大图滚动插件

jQSlide.html

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<link rel="stylesheet" type="text/css" href="css/jQSlide.css"/>

</head>

<body>

<div class="focus_box">

<ul class="focus_bd">

<li><img src="img/img01.jpg"/></li>

<li><img src="img/img02.jpg"/></li>

<li><img src="img/img03.jpg"/></li>

<li><img src="img/img04.jpg"/></li>

</ul>

<ul class="focus_btn">

</ul>

</div>

</body>

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript" src="js/jQSlide.js"></script>

<script type="text/javascript">

$(".focus_box").slide({

isAuto: true,//是否自动轮播

hasNext: true,//是否含有下一个按钮

hasPrev: true,//是否含有上一个按钮

activeIndex: 0,//当前展示图片索引,默认为0

speed: 300,//动画速度

time: 3000//间隔时间

});

</script>

</html>

jQSlide.js

(function($){

$.fn.slide = function(config){

var defaults = {

isAuto: true,//是否自动轮播

hasNext: true,//是否含有下一个按钮

hasPrev: true,//是否含有上一个按钮

activeIndex: 0,//当前展示图片索引,默认为0

speed: 300,//动画速度

time: 3000//间隔时间

};

var config = $.extend(defaults, config);

var that = $(this);

var activeIndex = config.activeIndex;

var oWidth = that.width();

var picBox = that.find(".focus_bd");

var btnBox;

var picLists;

var btnLists;

var timer;

//如果没有图片或者图片数量小于2返回

if (!picBox.find("li") || picBox.find("li") < 2) {

return;

}

//渲染DOM结构

var render = function(){

btnBox = that.find(".focus_btn");

//添加触点

var len = picBox.find("li").length;

var str = "";

for (var i = 0; i < len; i++) {

str+="<li>" + (i+1) + "</li>";

}

btnBox.html(str);

btnLists = btnBox.find("li");

//为当前触点添加类名

btnLists.eq(config.activeIndex).addClass("on");

//图片列表设置样式

picBox.css("width", oWidth* len);

picLists = picBox.find("li");

picLists.css("width", oWidth);

//如果有上一个按钮则添加DOM结构

if (config.hasPrev) {

that.append("<a href=‘javascript:;‘ class=‘btn_prev‘>&lt;</a>");

}

//如果有下一个按钮则添加DOM结构

if (config.hasNext) {

that.append("<a href=‘javascript:;‘ class=‘btn_next‘>&gt;</a>");

}

};

//滑动函数

var move = function(index){

btnLists.eq(index).addClass("on").siblings().removeClass("on");

picBox.stop().animate({

left: -index * oWidth

},config.speed)

activeIndex = index;

};

//开始滑动

var startMove = function(){

if (activeIndex == picLists.length-1) {

activeIndex = 0;

}else{

activeIndex++;

}

console.log(activeIndex);

move(activeIndex);

};

//自动播放

var autoPlay = function(){

timer = setInterval(startMove, config.time);

};

//事件绑定

var bindEvent = function(){

//鼠标滑到数字上的时候

btnLists.mouseenter(function(){

//这两句有用

var that = $(this);

console.log(that);

activeIndex = that.index();

console.log(activeIndex);

move(activeIndex);

});

//鼠标移出轮播图区域,开始自动播放;移进轮播区域,停止自动播放

if (config.isAuto) {

that.mouseover(function(){

clearInterval(timer);

}).mouseout(function(){

clearInterval(timer);

autoPlay();

});

}

//如果存在上一个按钮,则点击上一页切换到上一张

if (config.hasPrev) {

that.find(".btn_prev").on("click", function(){

var toIndex = activeIndex - 1;

toIndex = toIndex < 0 ? picLists.length-1 : toIndex;

move(toIndex);

});

}

//如果存在下一个按钮,则点击下一页切换到下一张

if (config.hasNext) {

that.find(".btn_next").on("click", function(){

var toIndex = activeIndex + 1;

toIndex = toIndex > picLists.length-1 ? 0 : toIndex;

move(toIndex);

});

}

};

var init = function(){

render();

if (config.isAuto) {

autoPlay();

}

bindEvent();

};

init();

return this;

}

})(jQuery);

jQSlide.css

*{margin: 0; padding: 0;}

ul{list-style: none;}

.focus_box{position: relative; width: 400px; height: 400px; margin: 50px auto 0; overflow: hidden;}

.focus_box .focus_bd,.focus_box .focus_btn{position: absolute;}

.focus_box .focus_btn{bottom: 10px; right: 20px;}

.focus_box .focus_btn li{float: left; width: 18px; height: 18px; line-height: 18px; text-align: center; background: #000; color: #999; cursor: pointer; margin-right: 5px; display: inline-block;}

.focus_box .focus_btn li.on{color: #fff;}

.focus_box .focus_bd{top: 0; left: 0;}

.focus_box .focus_bd li{float: left; display: inline-block;}

.focus_box .focus_bd img{display: block; width: 400px; height: 400px;}

/*a标签是行标签,但是定位后就可以设置宽高*/

.focus_box .btn_prev,.focus_box .btn_next{position: absolute; width: 40px; height: 40px; line-height: 40px; background-color: rgba(0,0,0,0.5); color: #fff; top: 50%; margin-top: -20px; text-align: center; font-family: arial; font-size: 30px;}

a{text-decoration: none;}

.focus_box .btn_next{right: 0;}

.focus_box .btn_prev{left: 0;}

时间: 2024-10-05 00:00:14

大图滚动插件的相关文章

Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示

用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件能够帮助到你.Nivo Slider首先推荐的这款插件号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如下特色:? 16个独特的过渡效果? 简洁和有效的标记? 加载参数设置?

onepage scorll全屏滚动插件

onepage scorll全屏滚动插件,它能够很方便.很轻松的制作出单页/全屏滚动页面.兼容主流浏览器,懒人图库推荐下载! 使用方法: 1.head区域引用文件onepage-scroll.css,jquery.min.js,jquery.onepage-scroll.min.js及以下样式 .page1 { } .page2 { background-color: #FF7F50;} .page3 { } .page4 { background-color: #f90;} p.title {

jQuery无缝滚动插件

插件代码 ;(function ($) { // jQuery marquee 插件 $.fn.marquee = function (options) { // 默认设置 var defaults = { derection: "top", interval: 50 }; // 合并后的参数设置 var options = $.extend(defaults, options); var $mar = $(this), original = $mar.children().first

jq滚动插件jquery.nicescroll+定位到底部

<pre name="code" class="html"><!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compat

Flexslider - 响应式的 jQuery 内容滚动插件

FlexSlider 是一款轻量的响应式 jQuery 内容滚动插件,能够帮助你在项目轻松的创建漂亮的内容滚动效果.这款插件曾经连续多年入选 WDL 的年度最佳 jQuery 插件,值得大家在网站开发中试试. 温馨提示:响应式效果需要再 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中才支持. 效果演示     插件下载 使用示例: <div class="flexslider"> <ul class="slides"&g

jQuery-全屏滚动插件【fullPage.js】API 使用方法总结

jQuery-全屏滚动插件fullPage.js使用方法总结 作者github及下载地址:https://github.com/alvarotrigo/fullPage.js 今天说下jQuery的一款插件fullpage.js,可以实现全屏滚动,非常流行的效果,兼容性IE8+ 还算不错,使用网站有小米,等电子产品.汽车全屏滚动展示,看起来比较高大上,接下来我全面解析下此款插件!附我做的一个简易效果,刚入博客园,不知能怎么上demo,只能截图了! 兼容性: 支持 IE8+ 及其他现代浏览器. 主

jquery.fullPage.js全屏滚动插件

效果演示 网站   http://www.51xuediannao.com/demo.php 插件下载  http://www.51xuediannao.com/js/jquery/jquery.fullPage.html jquery.fullPage.js是一个全屏滚动插件,本文提供jquery.fullPage实例教程演示 看啥都不如看演示来的直观,走起! 基本滚动 http://www.51xuediannao.com/js/jquery/jquery.fullPage/index2.h

10款很好用的 jQuery 图片滚动插件

jQuery 作为最流行的 JavaScript 框架,使用简单灵活,同时还有许多优秀的插件可供使用.其中最令人印象深刻的应用之一就是各种很酷的图片效果,它可以让的网站更具吸引力.这里收集了10款很好用的 jQuery 图片滚动插件分享给大家. 1.Nivo Slider 首先推荐的这款插件号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次! 在线演示 源码下载 2.Slides Slides 是一款精巧的

基于jquery的锚点滚动插件(百度百科效果) anchorScroll.js

1.插进使用场景 请打开https://baike.baidu.com/item/%E6%97%A5%E6%9C%AC%E5%8A%A8%E7%94%BB#hotspotmining,查看百度百科页面效果. 2.插件源代码: /* * 作者:孟繁贵 * 2017-08-25 * 版本:1.0 */ jQuery.anchorScroll = function(elem1, elem2) { var currObj, offsetTop = 0, h2List = new Array(), h3L