当前位置: 首页 > news >正文

微信公众号做电影网站长春网站建设推广

微信公众号做电影网站,长春网站建设推广,告诉你做网站需要多少钱,重庆网站建设的目的在做背景图片滚动的动画时,一般会用到background-position-x|background-position-y, 但火狐和欧朋浏览器不支持改表示方法,只支持原生的background-position,在做此类动画的时候,由于background-position所有浏览器都…

在做背景图片滚动的动画时,一般会用到background-position-x|background-position-y

但火狐和欧朋浏览器不支持改表示方法,只支持原生的background-position,在做此类动画的时候,由于background-position所有浏览器都支持,所以就可以放心的使用animate做背景滚动动画了.....

 

 

可是悲剧的是,jqanimate不支持background-position的表达方式,其支持background-position-x|background-position-y,所以做背景动画就成为一个难题,如何解决呢..

 

 

在网上找到了关于此类的解决方法---就是用插件,但这个插件是基于jq 1.8版本一下,所以在使用时必须用jq 1.8版本。

 

代码如下:

  1 (function ($) {
  2 
  3 if (!document.defaultView || !document.defaultView.getComputedStyle) {
  4 
  5 var oldCurCSS = jQuery.curCSS;
  6 
  7 jQuery.curCSS = function (elem, name, force) {
  8 
  9 if (name === "background-position") {
 10 
 11 name = "backgroundPosition";
 12 
 13 }
 14 
 15 if (name !== "backgroundPosition" || !elem.currentStyle || elem.currentStyle[name]) {
 16 
 17 return oldCurCSS.apply(this, arguments);
 18 
 19 }
 20 
 21 var style = elem.style;
 22 
 23 if (!force && style && style[name]) {
 24 
 25 return style[name];
 26 
 27 }
 28 
 29 return oldCurCSS(elem, "backgroundPositionX", force) + " " + oldCurCSS(elem, "backgroundPositionY", force);
 30 
 31 };
 32 
 33 }
 34 
 35  
 36 
 37 var oldAnim = $.fn.animate;
 38 
 39 $.fn.animate = function (prop) {
 40 
 41 if ("background-position" in prop) {
 42 
 43 prop.backgroundPosition = prop["background-position"];
 44 
 45 delete prop["background-position"];
 46 
 47 }
 48 
 49 if ("backgroundPosition" in prop) {
 50 
 51 prop.backgroundPosition = "(" + prop.backgroundPosition + ")";
 52 
 53 }
 54 
 55 return oldAnim.apply(this, arguments);
 56 
 57 };
 58 
 59  
 60 
 61 function toArray(strg) {
 62 
 63 strg = strg.replace(/left|top/g, "0px");
 64 
 65 strg = strg.replace(/right|bottom/g, "100%");
 66 
 67 strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g, "$1px$2");
 68 
 69 var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
 70 
 71 return [parseFloat(res[1], 10), res[2], parseFloat(res[3], 10), res[4]];
 72 
 73 }
 74 
 75  
 76 
 77 $.fx.step.backgroundPosition = function (fx) {
 78 
 79 if (!fx.bgPosReady) {
 80 
 81 var start = $.curCSS(fx.elem, "backgroundPosition");
 82 
 83  
 84 
 85 if (!start) {//FF2 no inline-style fallback
 86 
 87 start = "0px 0px";
 88 
 89 }
 90 
 91  
 92 
 93 start = toArray(start);
 94 
 95  
 96 
 97 fx.start = [start[0], start[2]];
 98 
 99  
100 
101 var end = toArray(fx.end);
102 
103 fx.end = [end[0], end[2]];
104 
105  
106 
107 fx.unit = [end[1], end[3]];
108 
109 fx.bgPosReady = true;
110 
111 }
112 
113  
114 
115 var nowPosX = [];
116 
117 nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
118 
119 nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
120 
121 fx.elem.style.backgroundPosition = nowPosX[0] + " " + nowPosX[1];
122 
123 };
124 
125 })(jQuery);
126 
127  
128 
129 现在jq版本都已经发展好多版本了,加入了好多新的方法,所以如何既能用高版本的jq,还能解决background-position的问题呢》》》
130 
131  
132 
133  
134 
135 完美解决:
136 
137 (function($) {
138 
139    $.fx.step["backgroundPosition"] = function(fx) {
140 
141    if (typeof fx.end == 'string') {
142 
143    fx.start = getBgPos(fx.elem);
144 
145    //fx.end原本是一个string,这里将它转换成数组,就不会再进入这个if,也方便我们下面的计算
146 
147    //例 "0px -21px"
148 
149    fx.end = [parseFloat(fx.end.split(" ")[0]), parseFloat(fx.end.split(" ")[1])];
150 
151    }
152 
153    //这里fx.pos是根据传入的时间参数,从0到1变化的浮点数
154 
155    var nowPosX = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit;
156 
157    var nowPosY = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit;
158 
159    fx.elem.style.backgroundPosition = nowPosX + ' ' + nowPosY;
160 
161  
162 
163    /**
164 
165     * 获取backgroundPosition数组[top, left],没有单位
166 
167     */
168 
169    function getBgPos(elem) {
170 
171    var top = 0.0;
172 
173    var left = 0.0;
174 
175    if ($(elem).css("backgroundPosition")) {
176 
177    //例 "0px -21px"
178 
179    top = parseFloat($(elem).css("backgroundPosition").split(" ")[0]);
180 
181    left = parseFloat($(elem).css("backgroundPosition").split(" ")[1]);
182 
183    } else {
184 
185    top = parseFloat($(elem).css("backgroundPositionX"));
186 
187    left = parseFloat($(elem).css("backgroundPositionY"));
188 
189    }
190 
191    return [top, left];
192 
193    }
194 
195    }
196 
197 })(jQuery);

 

转载于:https://www.cnblogs.com/galaxyxd/p/5893727.html

http://www.lbrq.cn/news/2698273.html

相关文章:

  • 苏州安岭网站建设公司电商网站seo优化
  • 怀化平台免费网站建设seo
  • 电子商务网站建设规划范文google登录入口
  • 电脑做ppt一般下载哪个网站好少儿编程
  • wordpress翻页404关键词优化的主要工具
  • 北京网站制作公司兴田德润在那里智能建站模板
  • 怎么做推广和宣传企业做网站搜索关键词是什么意思
  • 代理IP做网站荆门刚刚发布的
  • 东营专业网站建设太原做网站推广的公司
  • 浙江学院网站建设境外电商有哪些平台
  • 深圳网站建设去哪里seo综合优化公司
  • 查权重网站天津seo网络
  • 自己做内部网站百度平台商家客服电话
  • 做网站用什么语言编写国际重大新闻事件10条
  • 建立网站所需费用项目清单网络营销和网络推广有什么区别
  • 山西建设部网站网站是怎么做出来的
  • 附近做网站邯郸网站优化
  • 长沙企业网站排名优化淘宝培训
  • b2b电子商务网站调研报告1000字深圳关键词优化软件
  • 最专业的网站建设推广恶意点击软件怎样使用
  • 微信里借钱的小程序搜索引擎优化的定义
  • 做网站不靠点击收费的百度指数的主要用户是
  • 网站可以只做移动端吗河南搜索引擎优化
  • 做渐变色的网站360地图怎么添加商户
  • 怎样自己搭建网站上海排名优化推广工具
  • 个人备案门户网站hao123网址之家官网
  • html5教育网站百度指数怎么看排名
  • 域名停靠app免费下载网站郭生b如何优化网站
  • 烟台网站建设科技今日国际新闻摘抄十条
  • 购物网站建设目标查网站权重
  • Java 基础概念笔记
  • Python实战教程:PDF文档自动化编辑与图表绘制全攻略
  • 【安卓,问题记录】ImageView 在布局顺序上位于 Button 上方,却出现图像内容被 Button 遮挡
  • LeetCode 面试经典 150_数组/字符串_整数转罗马数字(18_12_C++_中等)(模拟)(对各位进行拆解)
  • 集成电路学习:什么是CV计算机视觉
  • 1小时 MySQL 数据库基础速通