博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
phpcms v9中jquery.sgallery插件升级到soChange
阅读量:4320 次
发布时间:2019-06-06

本文共 5484 字,大约阅读时间需要 18 分钟。

今日发现在系统中焦点图位置用的是jquery.sgallery.js插件,但是在搜狗浏览器的兼容模式中,焦点图会逐个被裁剪,也找不到具体原因,就搜索了下sgallery,发现他有了一个升级版本,叫做soChange 下载地址在

作者说解决了一些bug

于是把他换到系统当中,phpcms系统将这个插件增加了一个titleObj属性,我们也更新到他的新版本中。

这样更改完之后的js文件是这样的

/* *    soChange 1.6.1 - simple object change with jQuery *    made by bujichong 2011-10-10 *    作者:不羁虫  2011-10-10 * http://hi.baidu.com/bujichong/ *E-mail:bujichong@163.com */;(function($){    $.fn.extend({        "soChange": function(o){            o= $.extend({                thumbObj:null,//导航对象                titleObj:null,//标题                botPrev:null,//按钮上一个                botNext:null,//按钮下一个                changeType:'fade',//切换方式,可选:fade,slide,默认为fade                thumbNowClass:'now',//导航对象当前的class,默认为now                thumbOverEvent:true,//鼠标经过thumbObj时是否切换对象,默认为true,为false时,只有鼠标点击thumbObj才切换对象                slideTime:1000,//平滑过渡时间,默认为1000ms,为0或负值时,忽略changeType方式,切换效果为直接显示隐藏                autoChange:true,//是否自动切换,默认为true                clickFalse:true,//导航对象点击是否链接无效,默认是return false链接无效,当thumbOverEvent为false时,此项必须为true,否则鼠标点击事件冲突                overStop:true,//鼠标经过切换对象时,是否停止切换,并于鼠标离开后重启自动切换,前提是已开启自动切换                changeTime:5000,//自动切换时间                delayTime:300//鼠标经过时对象切换迟滞时间,推荐值为300ms            }, o || {});            var _self = $(this);            var thumbObj;            var size = _self.size();            var nowIndex =0; //定义全局指针            var index;//定义全局指针            var startRun;//预定义自动运行参数            var delayRun;//预定义延迟运行参数            //主切换函数            function fadeAB () {                if (nowIndex != index) {                    if (o.thumbObj) {                        $(o.thumbObj).removeClass(o.thumbNowClass).eq(index).addClass(o.thumbNowClass);                        $(o.titleObj).eq(nowIndex).hide();//新增加title                        $(o.titleObj).eq(index).show();//新增加title                    }                    if (o.slideTime <= 0) {                        _self.eq(nowIndex).hide();                        _self.eq(index).show();                    }else if(o.changeType=='fade'){                        _self.eq(nowIndex).fadeOut(o.slideTime);                        _self.eq(index).fadeIn(o.slideTime);                    }else{                        _self.eq(nowIndex).slideUp(o.slideTime);                        _self.eq(index).slideDown(o.slideTime);                    }                    nowIndex = index;//                    if (o.autoChange) {
// clearInterval(startRun);//重置自动切换函数// startRun = setInterval(runNext,o.changeTime);// } } } //切换到下一个 function runNext() { index = (nowIndex+1)%size; fadeAB(); } //初始化 _self.hide().eq(0).show(); //点击任一图片 if (o.thumbObj) { thumbObj = $(o.thumbObj); //初始化thumbObj thumbObj.removeClass(o.thumbNowClass).eq(0).addClass(o.thumbNowClass); thumbObj.click(function () { index = thumbObj.index($(this)); fadeAB(); if (o.clickFalse) {
return false;} }); if (o.thumbOverEvent) { thumbObj.hover(function () {
//去除jquery1.2.6不支持的mouseenter方法 index = thumbObj.index($(this)); delayRun = setTimeout(fadeAB,o.delayTime); },function () { clearTimeout(delayRun); }); } } //点击上一个 if (o.botNext) { $(o.botNext).click(function () { if(_self.queue().length<1){runNext();} return false; }); } //点击下一个 if (o.botPrev) { $(o.botPrev).click(function () { if(_self.queue().length<1){ index = (nowIndex+size-1)%size; fadeAB(); } return false; }); } //自动运行 if (o.autoChange) { startRun = setInterval(runNext,o.changeTime); if (o.overStop) { _self.hover(function () {
//去除jquery1.2.6不支持的mouseenter方法 clearInterval(startRun);//重置自动切换函数 },function () { startRun = setInterval(runNext,o.changeTime); }); } } } })})(jQuery);function slide(Name,Class,Width,Height,fun){ $(Name).width(Width); $(Name).height(Height); if(fun == true){ $(Name).append('
') var atr = $(Name+' div.changeDiv a'); var sum = atr.length; for(i=1;i<=sum;i++){ var title = atr.eq(i-1).attr("title"); var href = atr.eq(i-1).attr("href"); $(Name+' .change').append(''+i+''); $(Name+' .title').append(''+title+''); } $(Name+' .change i').eq(0).addClass('cur'); } $(Name+' div.changeDiv a').soChange({
//对象指向层,层内包含图片及标题 titleObj:Name+' div.title a', thumbObj:Name+' .change i', thumbNowClass:Class }); $(Name+" .title-bg").width(Width);}

这样的话,外部调用的地方也就不用改了,还是原来的老样子

参考

new slide("#main-slide","cur",310,260,1);//焦点图

原来jquery.sgallery.js中还有几个函数,可以直接copy到新文件当中用了。

转载于:https://www.cnblogs.com/youxu/p/3155772.html

你可能感兴趣的文章
ajax跨域,携带cookie
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏( dp )
查看>>
洛谷 CF937A Olympiad
查看>>
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>
ES索引模板
查看>>
HDU2112 HDU Today 最短路+字符串哈希
查看>>
JPanel重绘
查看>>
图片放大器——wpf
查看>>
SCALA STEP BY STEP
查看>>
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>
Ruby数组的操作
查看>>