css3 html5 手机设备 列表的弹回和加速移动
<style type="text/css"> * { margin: 0; padding: 0; } .min { width: 350px; height: 400px; overflow: hidden; } .min ul { list-style: none; display: block; } .min ul li { height: 30px; } </style> <body> <div class="min"> <ul> <li>21212125</li> <li>12</li> <li>343</li> <li>5345</li> <li>53</li> <li>435</li> <li>ert</li> <li>345</li> <li>eg</li> <li>grrrrrr</li> <li>3453</li> <li>ret</li> <li>345</li> <li>21212125</li> <li>456</li> <li>56</li> <li>rt</li> <li>67</li> <li>768</li> <li>789</li> <li>dfg</li> <li>789</li> <li>21212gggggg125</li> <li>21212125</li> <li>789</li> <li>eeqqqqqqqq</li> <li>789</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end</li> <li>gf</li> <li>ttgg</li> <li>sdf</li> <li>789</li> <li>21212125</li> <li>dgdgdgd</li> <li>90</li> <li>21212125</li> <li>-90</li> <li>21212125</li> <li>21212125</li> <li>2121902125</li> <li>90-</li> <li>21212125</li> <li>end9999999999999</li> </ul> </div> </body>
<script> $.fn.touchEvn = function () { return this.each(function () { var $this = $(this); var $touchtarge = $this.children(‘ul‘); var _ = this; _.startY = 0; //最高 _.maxHeight = $touchtarge[0].scrollHeight - $this.height(); _.StartSpanTime = undefined; _.LastTop = 0; $touchtarge.on(‘touchstart‘, function (e) { _.startY = event.targetTouches[0].pageY; _.StartSpanTime = event.timeStamp; }).on(‘touchmove‘, function (e) { $(this).css({ ‘transition‘: ‘none‘ }); //移动的长度 var len = _.startY - event.targetTouches[0].pageY; //最终的长度 len = (_.LastTop + len) * -1; $(this).css(‘marginTop‘, len); }).on(‘touchend‘, function (e) { //最终停留的位置 _.LastTop = _.LastTop + (_.startY - event.changedTouches[0].pageY); $(this).css({ ‘transition‘: ‘margin 1s‘, ‘transition-timing-function‘: ‘cubic-bezier(0.1,0.3,0.5,1)‘ }); if (_.LastTop < 0) { _.LastTop = 0; $(this).css(‘marginTop‘, _.LastTop); } else if (_.LastTop > _.maxHeight) { _.LastTop = _.maxHeight; $(this).css(‘marginTop‘, _.LastTop * -1); } else { //减速行驶 var endLen = _.checkSpeen(event.timeStamp - _.StartSpanTime, _.startY - event.changedTouches[0].pageY); _.LastTop = _.LastTop + endLen; $(this).css(‘marginTop‘, _.LastTop * -1); } }).on(‘transitionend‘,function(){
if (_.LastTop < 0) {
_.LastTop = 0;
$(this).css(‘marginTop‘, _.LastTop);
} else if (_.LastTop > _.maxHeight) {
_.LastTop = _.maxHeight;
$(this).css(‘marginTop‘, _.LastTop * -1);
}
}); //计算减速行驶距离 _.checkSpeen = function (t, s, maxlen) { var v = s / t; //惯性距离 var len = 800 * v / 11; if (len > maxlen) { return maxlen; } else { return len; } } }); } $(‘.min‘).touchEvn(); </script>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。