jquery - 导航轮播图

1,slider.js

/**

* slider插件可悬停控制

*/

; $(function ($, window, document, undefined) {

Slider = function (container, options) {

/*

options = {

auto: true,

time: 3000,

event: ‘hover‘ | ‘click‘,

mode: ‘slide | fade‘,

controller: $(),

activeControllerCls: ‘className‘,

exchangeEnd: $.noop

}

*/

"use strict"; //strict mode not support by IE9-

if (!container) return;

var options = options || {},

currentIndex = 0,

cls = options.activeControllerCls,

delay = options.delay,

isAuto = options.auto,

controller = options.controller,

event = options.event,

interval,

slidesWrapper = container.children().first(),

slides = slidesWrapper.children(),

length = slides.length,

childWidth = container.width(),

totalWidth = childWidth * slides.length;

function init() {

var controlItem = controller.children();

mode();

event == ‘hover‘ ? controlItem.mouseover(function () {

stop();

var index = $(this).index();

play(index, options.mode);

}).mouseout(function () {

isAuto && autoPlay();

}) : controlItem.click(function () {

stop();

var index = $(this).index();

play(index, options.mode);

isAuto && autoPlay();

});

isAuto && autoPlay();

}

//animate mode

function mode() {

var wrapper = container.children().first();

options.mode == ‘slide‘ ? wrapper.width(totalWidth) : wrapper.children().css({

‘position‘: ‘absolute‘,

‘left‘: 0,

‘top‘: 0

})

.first().siblings().hide();

}

//auto play

function autoPlay() {

interval = setInterval(function () {

triggerPlay(currentIndex);

}, options.time);

}

//trigger play

function triggerPlay(cIndex) {

var index;

(cIndex == length - 1) ? index = 0 : index = cIndex + 1;

play(index, options.mode);

}

//play

function play(index, mode) {

slidesWrapper.stop(true, true);

slides.stop(true, true);

mode == ‘slide‘ ? (function () {

if (index > currentIndex) {

slidesWrapper.animate({

left: ‘-=‘ + Math.abs(index - currentIndex) * childWidth + ‘px‘

}, delay);

} else if (index < currentIndex) {

slidesWrapper.animate({

left: ‘+=‘ + Math.abs(index - currentIndex) * childWidth + ‘px‘

}, delay);

} else {

return;

}

})() : (function () {

if (slidesWrapper.children(‘:visible‘).index() == index) return;

slidesWrapper.children().fadeOut(delay).eq(index).fadeIn(delay);

})();

try {

controller.children(‘.‘ + cls).removeClass(cls);

controller.children().eq(index).addClass(cls);

} catch (e) { }

currentIndex = index;

options.exchangeEnd && typeof options.exchangeEnd == ‘function‘ && options.exchangeEnd.call(this, currentIndex);

}

//stop

function stop() {

clearInterval(interval);

}

//prev frame

function prev() {

stop();

currentIndex == 0 ? triggerPlay(length - 2) : triggerPlay(currentIndex - 2);

isAuto && autoPlay();

}

//next frame

function next() {

stop();

currentIndex == length - 1 ? triggerPlay(-1) : triggerPlay(currentIndex);

isAuto && autoPlay();

}

function a(){

alert(‘aaa‘)

}

//init

init();

//expose the Slider API

return {

prev: function () {

prev();

},

next: function () {

next();

},

stop: function(){

stop()

}

}

};

}(jQuery, window, document));

2,主页调用,提前调用jquery,再调用slider.js

<script type="text/javascript">

$(function () {

var bannerSlider = new Slider($(‘#banner_tabs‘), {

time: 2000,

delay: 400,

event: ‘hover‘,

auto: true,

mode: ‘fade‘,

controller: $(‘#bannerCtrl‘),

activeControllerCls: ‘active‘

});

$(‘#banner_tabs .flex-prev‘).click(function () {

bannerSlider.prev()

});

$(‘#banner_tabs .flex-next‘).click(function () {

bannerSlider.next()

});

$(‘.悬停的区域‘).mouseenter(function () {

bannerSlider.stop()

})

})

</script>

原文地址:https://www.cnblogs.com/500m/p/11143527.html

时间: 2024-11-09 01:00:50

jquery - 导航轮播图的相关文章

10个免费的响应式jQuery Carousel 轮播图插件

jQuery Carousel 轮播图插件可以给网站创建华丽的动画效果,这里列出的10个jQuery Carousel 轮播图插件都是响应式的,并且可以免费使用. 1. ItemSlide.js 简单的触摸式Carousel 轮播图插件,提供多种样式的旋转动画,如向上滑动,基于全屏的触摸滑动,左右滑动等. 2. Liquid 每当Liquid 容器的大小改变时,都会重新调整列表中的项目数,以适应新的宽度. 3. jCarousel jCarousel 是一个用来控制水平或垂直方向上列表项的jQu

jQuery实现轮播图

我用的jQuery库jquery-3.2.1.js可以在官网下载:http://jquery.com/download/ <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <

使用jQuery实现轮播图

一共6张图片,每1.5m自动切换播放图片,鼠标在图片内则停止自动播放.可通过底部列表手动播放图片,也可通过图片两侧按钮手动点击切换图片.效果图如下. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>轮播图</title> <script src="https://libs.baidu.co

84JS插件:jQuery版轮播图

一.代码分两个部分:1.HTML部分,根据注释处理即可:2.基于jQuery的play.js插件部分,这里为了展示效果,直接写在<html></html>下的<script></script>标签里.3.效果包含:自动轮播,焦点对齐,前进后退,直走不返,鼠标进入.轮播停止且前进后退图标出现,鼠标离开.轮播重启且前进后退图标隐藏.4.这里可以预览效果.二.轮播图原理说明:(1)轮播图(假设)有7张图片,“一”字排列,把第1张图片复制一次,放到第8张的位置,这样

jQuery无缝轮播图思路详解-唯品会

效果图如上: 需求:图片自动轮播,鼠标移上停止播放,离开恢复播放,箭头切换图片. html代码 <!--轮播图大盒子开始--> <div class="wrap"> <!--大盒子上部分轮播图--> <div class="wrapUp"> <ul> <li class="cur"><a href="#"><img src="i

自己定义jquery插件轮播图

轮播图-html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible&

Jquery 实现轮播图

jq 轮播图 function banner_show(){ var left_btn = $("#banner_tag_left"); //获取左侧单击按钮 var right_btn = $("#banner_tag_right"); //获取右侧点击按钮 var Owidth = $("#banner ul li").width(); //获取单个图片宽度 var Oindex = $("#banner ul li");

jquery 广告轮播图

轮播图 /*轮播图基本功能: * 1图片切换 * 1.1图片在中间显示 * 1.2图片淡入淡出 * 2左右各有一个按钮 * 2.1点击左按钮,图片切换上一张 * 2.2点击右按钮,图片切换下一张 * 2.3鼠标滑过按钮,按钮颜色加深 * 3底部的导航点 * 3.1图片为第几张时,点在那第几张 * 3.2鼠标滑到第几个点,图片切换到第几张 * 4图片自动轮播 * 4.1默认自动下一张 * 4.2鼠标在图片范围时,停止切换 * 4.3鼠标离开图片范围,恢复自动切换 * 5鼠标放在图片范围时,变为小手

导航+轮播图(手动)

今天用html和css照着网上的实例写了个小导航,我突然发现不用js也可以做出高大上的感觉,关键还是自己的想象力和艺术感不高.没有做不到,只有想不到... 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http