- /**
- * 时间: 2015年05月21日
- * 调用: f.rootTouchBind(t);
- * t: 传入调用此方法的id字符串
- */
- var f = {
- rootTouchObj : {
- startY: 0,
- scrollY: 0
- },
- scrollRootHeight: function (t){
- var that = $('#'+t);
- var h = that.height();
- var c = that.parent().height();
- var p = h - c;
- return p ;
- },
- rootTouchBind: function (t) {
- var c = this;
- var d = $('#'+t);
- var l = d.height();
- var p = d.parent().height();
- if ( l < p) {
- return;
- };
- $('#' + t).on('touchstart', function (d) {
- c.rootTouchObj.startY = d.touches[0].clientY;
- c.rootTouchObj.scrollY = 0
- });
- $('#' + t).on('touchmove', function (g) {
- g.preventDefault();
- var h = g.touches;
- var f = g.touches[0].clientY;
- var i = f - c.rootTouchObj.startY;
- var d = 0;
- var e = c.getY(t);
- d = e + i;
- if (d > 150) {
- d = 150
- } else {
- if (d < (c.scrollRootHeight(t) * - 1 - 150)) {
- d = (c.scrollRootHeight(t) * - 1 - 150)
- }
- }
- $('#' + t).CSS('transform', 'translateY(' + d + 'px)');
- $('#' + t).css('-webkit-transform', 'translateY(' + d + 'px)');
- c.rootTouchObj.scrollY = f - c.rootTouchObj.startY;
- c.rootTouchObj.startY = f
- });
- $('#' + t).on('touchend', function (d) {
- c.touchScroll(c.rootTouchObj.scrollY, t, c.scrollRootHeight(t))
- })
- },
- touchScroll: function (k, d, m, g) {
- var c = this;
- var e = Math.abs(k);
- var h = 0;
- var f = 200;
- var l = d;
- var j = 0;
- if (e >= 40) {
- h = 15
- } else {
- if (e < 40 && e >= 25) {
- h = 10
- } else {
- if (e < 25 && e >= 10) {
- h = 5
- } else {
- h = 0
- }
- }
- }
- if (h > 0) {
- if (k < 0) {
- h = h * - 1
- }
- setTimeout(function () {
- c.touchScrollRun(h, d, 0, m, g)
- }, 2)
- } else {
- var i = 0;
- i = c.getY(d);
- c.goToEnd(i, d, m)
- }
- },
- touchScrollRun: function (h, k, g, e, f) {
- var i = this;
- var j = g + 1;
- if (f) {
- i.imgLazyLad.lazyLad()
- }
- if (g < 50) {
- var d = 0;
- d = i.getY(k) + h;
- $('#' + k).css('transform', 'translateY(' + d + 'px)');
- $('#' + k).css('-webkit-transform', 'translateY(' + d + 'px)');
- if (d <= (e * - 1 - 30) || d >= 30) {
- i.goToEnd(d, k, e)
- } else {
- setTimeout(function () {
- i.touchScrollRun(h, k, j, e, f)
- }, 2)
- }
- } else {
- i.goToEnd(d, k, e)
- }
- },
- goToEnd: function (c, h, e) {
- var g = this;
- var f = null;
- var d = null;
- if (e > 0) {
- if (c < (e * - 1)) {
- f = {
- transform: 'translateY(' + (e * - 1) + 'px)',
- '-webkit-transform': 'translateY(' + (e * - 1) + 'px)',
- '-webkit-transition': '0.2s ease 0s',
- transition: '0.2s ease 0s'
- };
- d = {
- transform: 'translateY(' + (e * - 1) + 'px)',
- '-webkit-transform': 'translateY(' + (e * - 1) + 'px)',
- '-webkit-transition': '',
- transition: ''
- }
- } else {
- if (c > 0) {
- f = {
- transform: 'translateY(0px)',
- '-webkit-transform': 'translateY(0px)',
- '-webkit-transition': '0.2s ease 0s',
- transition: '0.2s ease 0s'
- };
- d = {
- transform: 'translateY(0px)',
- '-webkit-transform': 'translateY(0px)',
- '-webkit-transition': '',
- transition: ''
- }
- }
- }
- }
- if (c != 0) {
- $('#' + h).css(f);
- setTimeout(function () {
- $('#' + h).css(d)
- }, 200);
- return true
- } else {
- $('#' + h).css({
- transform: 'translateY(0px)'
- });
- $('#' + h).css({
- '-webkit-transform': 'translateY(0px)'
- });
- return false
- }
- },
- getY: function (e) {
- var d = this;
- var c = $('#' + e).css('transform');
- if (!c) {
- c = $('#' + e).css('-webkit-transform')
- }
- if (c == 'none') {
- c = 0
- } else {
- c = c.replace('translateY(', '').replace(')', '');
- c = parseInt(c, 10)
- }
- if (!c) {
- c = 0
- }
- return c
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2505201512639.html
来源: http://www.codesnippet.cn/detail/2505201512639.html